0

我在我的网站上创建了一个包含一些用户的数据库,并希望在我的网站上有一个带有文本框的表单,允许我针对我的数据库提交完整的 SQL 查询。

使用PHP时这可能吗?我看到它在 ASP.net 中是可能的,但我对那种语言有点不熟悉。

例子:

在我的页面 run_sql.php 上,我想要一个带有提交按钮的文本框。

在文本框中,我希望能够运行命令,例如

INSERT INTO `userdata`(`UserID`, `FirstName`, `LastName`, `Email`, `PF_Username`, `PF_Password`, `Endpoint`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7])

并将声明的值写入我的表中。

sql.php 代码仅供参考:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <title>Run SQL - TEST</title>
  </head>

    <table border="0" cellpadding="10">
      <tr>
        <td>
          <img src="images/api_rat.png">
        </td>
        <td>
          <h1>TEST</h1>
        </td>
      </tr>
    </table>
<body>
    <form action="sql.php" method="GET">
        <textarea name="comments" cols="25" rows="5">Enter your SQL query here...</textarea><br>
        <input type="submit" value="Run Query on LIVE DB" />
    </form>
</body>
</html>

这可能吗?在此先感谢您的帮助!:)

4

3 回答 3

2

当然,进行连接,然后执行 mysql_query($_GET['comments']);

但是你知道,如果这个脚本可以从网络上访问,你有一个非常非常大的问题吗?:-)

于 2013-01-04T18:22:23.323 回答
1

这是可能的,但这是一个非常糟糕的主意。如果有人输入DROP TABLE myreallyimportanttable怎么办?

不过,如果你想这样做,只需将文本框输入捕获为字符串,并将其提供给 mysql 连接;

$sql = $_GET['comments'])
$dbconn = @mysql_pconnect("$dbhost:$dbport", $dbuser, $dbpassword);
return @mysql_query ($sql, $dbconn);

尽情享受 SQL 注入攻击吧!

于 2013-01-04T18:25:55.867 回答
0

试试这个

<?php
$sql = $_GET["comments"];
$result = mysql_query($sql);
if($result){
//if it works show this
}else{
//if it doesnt work show this
}
?>

如果它不起作用告诉我。

于 2013-01-05T00:47:04.607 回答