我允许用户通过发布表单来创建SQL查询(SELECT、UPDATE、INSERT)。
代码:
$sql = $_POST["sql_query"]
mysqli_query($link, $sql);
如果$sql
使用SELECT
,我想制作一个mysqli_num_rows
。
如何检查$sql
是否包含SELECT
?
$sql = '';
$rows = 0;
$result = mysqli_query($link, $sql);
if(strtoupper(substr($sql,0,6)) == 'SELECT')
$rows = mysqli_num_rows($result);
SELECT
将始终是SQL中的第一个单词,因此只需比较前六个字符即可。一定要忽略大小写(我是通过大写字母来做这件事的),否则你可能会错过一些查询,但这应该是一个快速简单的解决方案。
$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;
}