我允许userst通过发布表单来创建SQL查询(SELECT,UPDATE,INSERT)。PHP SQL查询检查是否包含INSERT
代码:
$sql = $_POST["sql_query"]
mysqli_query($link, $sql);
我想打一个mysqli_num_rows
如果$sql
使用SELECT
。
如何在$sql
包含SELECT
?
我允许userst通过发布表单来创建SQL查询(SELECT,UPDATE,INSERT)。PHP SQL查询检查是否包含INSERT
代码:
$sql = $_POST["sql_query"]
mysqli_query($link, $sql);
我想打一个mysqli_num_rows
如果$sql
使用SELECT
。
如何在$sql
包含SELECT
?
$sql = '';
$rows = 0;
$result = mysqli_query($link, $sql);
if(strtoupper(substr($sql,0,6)) == 'SELECT')
$rows = mysqli_num_rows($result);
SELECT
将始终是SQL中的第一个单词,因此只需比较前六个字符即可。一定要忽略大小写(我通过大写字母来做这件事),否则你可能会错过一些查询,但这应该是一个快速而简单的解决方案。
非常感谢。 +1表示第一个字符substr。 – 2014-08-27 09:08:13
$sql = $_POST["sql_query"];
if (strpos(strtolower($sql),'insert') !== false)
{
mysql_query($sql,$con);
}
else if (strpos(strtolower($sql),'select') !== false)
{
$row= mysql_num_rows(mysql_query($sql,$con));
}
[EDIT I dont know mysqli so i may not know the actual syntaxes. So i am giving w.r.t mysql]
希望您可以根据您的方便进行调整。它的逻辑你需要。
if(strstr($sql,'SELECT') || strstr($sql,'select')) {
//your code here
$query = mysqli_query($link, $sql);
$count = mysqli_num_rows($query);
echo $count;
}
谢谢你的回答。在发布代码时,还请附上简短的说明,以便OP能够理解代码。 – 2014-08-27 09:30:20
好的......谢谢你的回复。 – 2014-08-27 09:32:43
SELECT对于INSERT或UPDATE来说似乎是另一种类型的东西。当然,这是你的逻辑? – Strawberry 2014-08-27 08:52:58
允许用户构建自己的查询? – Debflav 2014-08-27 08:53:52
我很抱歉,我的错! – 2014-08-27 08:53:59