【发布时间】:2013-11-21 01:43:04
【问题描述】:
我对以下语法错误感到头疼。我正在尝试将内爆数组绑定到准备好的语句中,但出现以下语法错误:
您的 SQL 语法有误;检查与您的 MySQL 服务器版本相对应的手册,以了解在“?”附近使用的正确语法在第 1 行
这是我的代码。谁能看出我哪里出错了?
<?php
include('config.php');
$selected = $_POST['selected'];
if ($stmt = $mysqli->prepare("DELETE FROM email_addresses WHERE email_addresses IN ?")) {
$stmt->bind_param("s", "('" . implode("', '", $selected) . "')" );
$stmt->execute();
$stmt->close();
print "ok";
} else {
print $mysqli->error;
}
$mysqli->close();
?>
作为测试,我尝试了:
print "('" . implode("', '", $selected) . "')";
这正确地给了我
('me@me.com', 'you@you.com')
【问题讨论】:
-
对不起,我没有答案。我只是想说我认为这是一个巧妙的把戏。我自己可以多次使用这种技术进行动态绑定。
-
@LeeLoftiss 看到我的回答为什么这不起作用
-
我的意思是我经常想要动态绑定,但我从来没有想过会有办法。我经常忘记 PHP 的通用性。下次我需要这个时,我会为你的答案添加书签。谢谢。
标签: php mysql mysqli prepared-statement