Php 从文本框提交MySQL查询?

Php 从文本框提交MySQL查询?,php,html,mysql,database,Php,Html,Mysql,Database,我在我的网站上创建了一个数据库,其中有一些用户,我希望在我的网站上有一个带有文本框的表单,允许我提交一个针对数据库的完整SQL查询 这在使用PHP时可能吗?我认为这在ASP.net中是可能的,但我对这种语言有点不熟悉 例如: 在我的页面上,运行_sql.php,我想要一个带有提交按钮的文本框 在文本框中,我希望能够运行命令,例如 INSERT INTO `userdata`(`UserID`, `FirstName`, `LastName`, `Email`, `PF_Username`, `P

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

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

例如:

在我的页面上,运行_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>

运行SQL测试
试验
在此处输入SQL查询…

这可能吗?提前感谢您的帮助!:)

当然,建立连接,然后执行mysql_查询($_GET['comments')


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

当然,建立连接,然后执行mysql_查询($_GET['comments')

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

这是可能的,但这确实是个坏主意。如果有人键入
删除表MyReallyImportantable

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

$sql = $_GET['comments'])
$dbconn = @mysql_pconnect("$dbhost:$dbport", $dbuser, $dbpassword);
return @mysql_query ($sql, $dbconn);
享受SQL注入攻击的乐趣

这是可能的,但这确实是个坏主意。如果有人键入
删除表MyReallyImportantable

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

$sql = $_GET['comments'])
$dbconn = @mysql_pconnect("$dbhost:$dbport", $dbuser, $dbpassword);
return @mysql_query ($sql, $dbconn);
享受SQL注入攻击的乐趣

试试这个

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

如果它不起作用,告诉我。

试试这个

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



如果不起作用,告诉我。

可能吗?当然危险的非常好。我觉得这是丢失所有数据的好方法。这绝对可行。。。这基本上就是phpmyadmin所做的。正如@diggersworld所说,你应该使用phpmyadmin。这让我想起了墨菲定律。“如果某件事可能出错,它就会出错,而且它会以最具破坏性的方式出错”可能吗?当然危险的非常好。我觉得这是丢失所有数据的好方法。这绝对可行。。。这基本上就是phpmyadmin所做的。正如@diggersworld所说,你应该使用phpmyadmin。这让我想起了墨菲定律。“如果某件事出了差错,它就会出差错,而且它会以一种最具破坏性的方式出差错。”。。。说得迂腐一点,当设计允许执行用户提供的SQL时,这并不是真正的SQL注入攻击。@josh3736注释不错,非常符合逻辑:)+1好吧。。。说得迂腐一点,当设计允许执行用户提供的SQL时,这实际上不是SQL注入攻击。@josh3736注释不错,非常符合逻辑:)+1感谢信息Fabian。但是,是的,我知道潜在的安全问题。我只是还没想好我该怎么办。用密码保护我的目录?再说一次,还不确定。这个网站/数据库更多的是一个概念证明,因此如果有人弄乱了它,它就不是关键任务。那么请确保,使用的数据库用户只对一个数据库拥有权限:)感谢Fabian提供的信息。但是,是的,我知道潜在的安全问题。我只是还没想好我该怎么办。用密码保护我的目录?再说一次,还不确定。此网站/数据库更多的是概念验证,因此如果有人弄乱了它,它就不是任务关键型的。请确保,使用的数据库用户仅对一个数据库拥有权限:)