我创建了一个SQL页面,其中用户可以运行SQL查询。我的问题在于我不知道用户将输入的列。因此我不能显示他所要求的。 就像他的查询是:select emp from emp;我如何知道他输入了哪个列名,并将其显示在结果页面中。 下面是您可以使用并帮助我的确切查询。我在我的代码中使用了大量的IF案例。例如:if(strpos($ query,“id”))然后它显示id列。 请帮帮我。 并提前致谢!帮助显示数据库中的数据
回答
您must
是在开玩笑,让用户写这几样在一个WebForm的语句,整个世界可以访问..
这就是说,当你执行一个查询,您可以按行获取结果行成key =>值数组。键将包含字段名称。为此,请使用mysql_fetch_array。
但是真的。如果你的代码工作,我可以写
SHOW DATABASES;
DROP DATABASE <databasename that is on my screen>
而突然间,你有一个空的服务器。尽快将此脚本脱机。
我不是在开玩笑。 – GolezTrol
这不过是实验而已。没有有用的数据可供用户使用。并不是所有的权利都赋予给用户...... SQL是我们课程的一部分,我认为要尝试... – Atulmaharaj
当您从数据库中查询的输出做这样的事情:
$query = mysql_query("YOUR_USERS_QUERY_HERE");
if (mysql_affected_rows() > 0) {
while ($row = mysql_fetch_assoc($query)) {
$keys = array_keys($row);
foreach ($keys as $a_key) {
echo $a_key . "=" . $row[$a_key] . " <br /> ";
}
echo "<br />";
}
} else {
echo "No Rows Found";
}
- 编辑 -
要输出的标题,一旦你可以做这样的事情:
$first = true;
while ($row = mysql_fetch_assoc($query)) {
if ($first == true) {
//output header code here
$first = false;
}
//output data row code here
}
嘿,根据上面的帖子,我确实得到了我想要的东西。谢谢。但你能帮我一点格式?请访问[链接](http://www.atulmaharaj.com/dbms/index_old.html)给出查询 - 选择*从emp;请查看输出并告诉我问题出在哪里..预先感谢... :) – Atulmaharaj
看起来您每循环输出标题行。输出标题行一次。 – Jasper
感谢吨@Jasper ...它为我工作...... :) – Atulmaharaj
我跟GolezTrol一起去,这根本就没有保存。
你当然可以用if语句检查用户是否使用过“DROP”或“SHOW”这个词,或者只是允许某些事情,但我不知道这是否保存...
mysql_fetch_field可以从结果集中获取列名以及许多关于列(type,max_length等)的其他信息,这些信息对于像这样的程序中显示可能很有用。
嗯....谢谢你会尝试它,让你知道... :) – Atulmaharaj
只要他限制与php mysql调用相关的sql用户权限,它就是安全的。只给它选择一个数据库的权限,它真的没关系,如果它在公共网站上(假设你不关心每个人都可以看到数据)。
这将格式化SQL输出到一个像样找表为您提供:
$header = null;
$colspan = 0;
while($values = odbc_fetch_array($rs))
{
$result .= "<TR>";
if(is_null($header))
{
foreach(array_keys($values) as $key)
{
$header .= "<TH style='border:1px dashed #00FF00;padding:5px 5px 5px 5px;align:left;'>$key</TH>";
$colspan++;
}
}
foreach($values as $value)
{
$result .= "<TD style='border:1px dashed #00FF00;padding:5px 5px 5px 5px;align:left;'>$value</TD>";
}
$result .= "</TR>";
}
}
$result = "<TABLE style='padding: 1px 1px 1px 1px;border:dash 1px #00FF00;color:#00FF00;'>".
"<tr><td colspan='$colspan'>>>" . $sql . "</tr></td>" .
$header.$result."</TABLE>";
我可以得到的数据显示在一个表格形成。我面临的问题是如何知道用户输入的栏目并显示它。感谢它顺便说一句。 :) – Atulmaharaj
这就是上面代码的标题部分。它采用数组的键并将它们用作列名。 – thaspius
- 1. 需要帮助,以显示从MySQL数据库中的数据
- 2. 帮助在表中显示XML数据
- 3. 帮助显示微调数据
- 4. 帮助数据库设计
- 5. 数据库布局帮助
- 6. SQLite数据库帮助
- 7. 帮助数据库设计
- 8. 帮助 - android数据库
- 9. 帮助数据库设计
- 10. 索引数据库帮助
- 11. 帮助数据库模式?
- 12. 帮助,数据库建模
- 13. 数据库帮助查询
- 14. 数据库帮助类
- 15. 数据库设计帮助
- 16. SQLite数据库帮助
- 17. 需要帮助的显示数据库内容
- 18. 显示数据库中的数据?
- 19. PDO搜索数据库显示搜索结果帮助开始
- 20. SQL帮助〜关系数据库模型〜显示结果
- 21. 需要帮助查询数据库以显示最新版本
- 22. 数据库中的数据SYN错误的帮助,请
- 23. 需要帮助在Swift中的UITableView中显示核心数据
- 24. 现有的SQL数据库android帮助
- 25. 简单的数据库方案帮助
- 26. Delphi和MySQL数据库的帮助
- 27. 无法在数据库帮助中保存数据!
- 28. 根据数据库中的数据数显示数字序列
- 29. 显示数据库
- 30. 帮助中添加数据
我很想看到查询历史记录以查看各种攻击 –
不知道你正在试图在这里 – swordfish
做通常什么,您应该能够使用'mysql_num_fields'和'mysql_field_name'函数从查询结果中获取列标题列表。 –