我的网站上有一些用户创建了一个数据库,并希望在我的网站上有一个表单,其中包含一个文本框,允许我针对我的数据库提交完整的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>
这可能吗?在此先感谢您的帮助! :)
答案 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
}
?>
如果它不起作用告诉我。