Php 更新时出现MySQL语法错误
在此脚本中找不到问题:Php 更新时出现MySQL语法错误,php,mysql,implode,Php,Mysql,Implode,在此脚本中找不到问题: $delhash = array(); $resultxx = mysqli_query($datba1,"SELECT htag FROM wall_hashtags WHERE publicat='$permid'") or die('Error1'); while(list($dht) = mysqli_fetch_row($resultxx)) { $delhash[] = $dht; } 以下更新不起作用: $result_update = mysql
$delhash = array();
$resultxx = mysqli_query($datba1,"SELECT htag
FROM wall_hashtags
WHERE publicat='$permid'") or die('Error1');
while(list($dht) = mysqli_fetch_row($resultxx)) {
$delhash[] = $dht;
}
以下更新不起作用:
$result_update = mysqli_query($datba1,"UPDATE wall_hashtags SET
numbr=numbr-1 WHERE htag IN (".implode(",", $delhash).")")
die(mysqli_error($datba1));
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“first、second、third”附近使用的正确语法
数组:
echo '<pre>'; print_r($delhash); echo '</pre>';
Array
(
[0] => first
[1] => second
[2] => third
)
echo';打印(delhash);回声';
排列
(
[0]=>首先
[1] =>秒
[2] =>第三
)
请确保正在使用带有varchar
值的IN()
子句进行更新。查看更多详细信息
所以你应该用“
来包装它
请确保正在使用带有
varchar
值的IN()
子句进行更新。查看更多详细信息
所以你应该用“
来包装它
这应该是正确的答案。不要忘记用引号将字符串括起来。
die
也在mysqli\u查询中;还需要一个或…或者我对mysqli
不够熟悉,这是有效的吗?@chris85我想die()
可以。只需添加或
。这应该是正确答案。不要忘记用引号将字符串括起来。die
也在mysqli\u查询中;还需要一个或…或者我对mysqli
不够熟悉,这是有效的吗?@chris85我想die()
可以。只需添加或
。使用准备好的语句。要再次保存SQL注入,请使用prepared语句。重新保存SQL注入
$result_update = mysqli_query($datba1,"UPDATE wall_hashtags SET
numbr=numbr-1 WHERE htag IN ('".implode("','", $delhash)."')")
or die(mysqli_error($datba1));