【发布时间】:2013-06-12 16:24:45
【问题描述】:
我正在尝试更改为准备好的语句,但不断收到以下错误:
警告:PDO::query(): SQLSTATE[42000]: 语法错误或访问冲突:1064 你有一个 SQL 语法错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 ':fname AND
附近使用的正确语法这是我使用的代码:
$street = 'astreet';
$lname = 'alname';
$fname = 'afname';
$list = '1,2,3,4,5';
$var = 'admin';
$db = new PDO("mysql:dbname=customers;host=localhost",$var,$var);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
$sql = "SELECT * FROM `table` WHERE `id` in ($list) AND `first_name` LIKE :fname AND `last_name` LIKE :lname AND `street_name` LIKE :street";
$stmt = $db->prepare($sql);
$stmt->execute(array(':street' => $street));
$stmt->execute(array(':fname' => $fname));
$stmt->execute(array(':lname' => $lname));
$result = $db->query($sql);
foreach ($result as $row) {
echo $row['post_code'];
}
如果我正常运行查询 - 不是准备好的状态,它工作正常 - 只有当我开始将 :variables 添加到查询时,我才会收到错误
是否有任何代码丢失/不正确?
谢谢
【问题讨论】:
标签: php mysql pdo syntax-error prepared-statement