Php MySQL IN()用于处理PDO查询
可能重复:Php MySQL IN()用于处理PDO查询,php,mysql,pdo,Php,Mysql,Pdo,可能重复: 我用PHP和MySQL创建网站只是出于一种爱好,我的一生都在使用未经准备的语句,直到昨晚我决定尝试PDO查询。除了在()中使用外,我已成功地使它们全部工作。例如,当我这样做时: $stmt3 = $dbConnection->prepare("SELECT * FROM member_search WHERE zip IN(:zip_codes_in_distance)"); $stmt3->execute(array(':zip_codes_in_distance'
我用PHP和MySQL创建网站只是出于一种爱好,我的一生都在使用未经准备的语句,直到昨晚我决定尝试PDO查询。除了在()中使用外,我已成功地使它们全部工作。例如,当我这样做时:
$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\u代码是这种格式的zip代码“07110”、“07109”、“07050”
我做错了什么?无法使用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是我让它工作的唯一方法。
我使用了本教程:请看,即使在键入问题标题时,我也没有找到该链接,谢谢,现在查看。我曾经遇到过类似的问题,并发现此答案中的解决方案非常有用。这是一个数组问题。好的,现在用这些解决方案转换我的查询,看看我是否能让它工作,我会很快回复结果,谢谢你们两位的帮助。