【发布时间】:2017-10-28 22:57:48
【问题描述】:
我只是想知道,如果可能的话,允许用户从 Web 应用程序中实际输入 SQL 查询的最佳方式。
到目前为止,我有一个非常简单的 Web 应用程序,它允许用户查看数据库表并对其进行操作等等。
我想给他们一个选项,让他们也可以从 Web 应用程序中实际键入查询 (SELECT * FROM).. 然后在表格中显示结果。 (与搜索栏完全一样,但我认为这不会削减它,不是吗?)。
我目前只使用 PHP,我希望仅使用 HTML/PHP 就能实现,还是需要其他语言的帮助?
这对我来说可能太复杂了,但如果有人能给我一个很好的起点,那就太好了。
更新: 根据我的理解来回答我的问题,我需要这样的东西:
<form action= Search.php method="POST">
<input type="text" name="Search">
<input type="submit" name"">
搜索.php
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$SEARCH = $_POST['Search'];
if (!isset($_POST)) {
$sql = "'%".$_POST['$SEARCH']."%'";
$results = mysqli_query($con, $sql);
echo "<table border ='2'>";
if (mysqli_num_rows($results) !=0) {
while ($row=mysqli_fetch_array($results)) {
echo "<tr><td></td></tr>";
}
echo "</table>";
}else {
echo "Failed! Try another search query.";
}
}
}
?>
此时 in 返回一个错误:
未定义索引:搜索
这是在谈论$SEARCH = $_POST['Search'];
但我认为我正在定义该搜索,因为那是表单中的搜索?
【问题讨论】:
-
为什么不让他们访问像 phpMyAdmin 这样的东西?
-
@ceejayoz 我完全理解你的意思:) 我知道这是在现实世界中永远不会执行的事情,我很清楚潜在的安全风险,但是我对 php/ 还很陌生sql 和只是想到这一点让我质疑一个人将如何去做,所以如果你愿意,就来一场“玩”吧。
-
如果您想要比 phpMyAdmin 更简单的东西作为示例/灵感,请查看github.com/vrana/adminer。
-
感谢您的回复.... phpMyAdmin 示例基本上是我正在寻找的,文本框和搜索按钮是字面上的,因此用户可以执行 SQL 语句,就像搜索查询一样。我遇到的困难只是知道我应该在执行脚本中编写什么类型的 SQL 语句,例如: 在搜索语句中有人可以写的位置:
$sql = SELECT * FROM user WHERE name LIKE ='%".$_POST['search']."%'然后他们会返回结果。我需要输入类似:$sql = "'%".$_POST['$SEARCH']."%'"; -
如果您想让用户进行原始 SQL 查询,只需执行
$sql = $_POST['whatever'];