0

可能重复:
PHP PDO:我可以将数组绑定到 IN() 条件吗?

我只是出于一种爱好用 PHP 和 MySQL 制作网站,我一生都在使用未经准备的语句,直到昨晚我决定尝试 PDO 查询。我已经成功地让它们全部工作了,除非我使用 IN()。例如,当我这样做时:

$stmt3 = $dbConnection->prepare("SELECT * FROM member_search WHERE zip IN(:zip_codes_in_distance)");
$stmt3->execute(array(':zip_codes_in_distance' =>   $zip_codes_in_distance ));
foreach ($stmt3 as $user_list) {
   //do cool stuff here
}

这将返回此错误:

Syntax error or access violation: 1064

谷歌搜索后,我尝试了一些解决方案但没有成功,比如使用query()而不是execute()

这仅在我使用时发生IN()

$zip_codes_in_distance这种格式的邮政编码 '07110', '07109', '07050'

我究竟做错了什么?

4

1 回答 1

0

使用 PDO 无法使其正常工作,所以我改用 MySQLi。在单独的文件中建立数据库连接:

$Connect = new mysqli($host, DB_Username, DB_password, DB_Name);

像这样运行查询:

include 'DbConnectFIle.php';
$zips = "07110, 07109";
$sql = "SELECT * FROM table WHERE zip IN(".$zips.") ";
        $result = $Connect->query($sql);
        while($row = $result->fetch_assoc()){
                     $MemberName = $row['first_name'];
        }
$Connect->close();

echo $MemberName;

使用 PDO 尝试了四个小时,MySQLi 是我让它工作的唯一方法。我使用了本教程:http ://codular.com/php-mysqli

于 2012-10-05T07:27:45.330 回答