从文本框提交MySQL查询?

时间:2013-01-04 18:20:15

标签: php html mysql database

我的网站上有一些用户创建了一个数据库,并希望在我的网站上有一个表单,其中包含一个文本框,允许我针对我的数据库提交完整的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>

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

3 个答案:

答案 0 :(得分:2)

确定,进行连接,然后执行mysql_query($ _ GET [&#39; comments&#39;]);

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

答案 1 :(得分:1)

这是可能的,但这是真的坏主意。如果有人输入DROP TABLE myreallyimportanttable

,该怎么办?

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

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

享受SQL注入攻击的乐趣!

答案 2 :(得分:0)

试试这个

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

如果它不起作用告诉我。