pdo - 占位符在准备好的语句中不起作用
问题描述
我有一个有效的查询,但是当我尝试使用准备好的语句将变量替换为占位符时,出现了问题。我在这里想念什么?
$sql = "
SELECT t1.tbl,
COALESCE(t2.title, tx_ctr.Name) AS title
FROM aux
LEFT JOIN tx_chs
ON t1.tbl = 't2' AND t1.rid = t2.cid AND t2.county = :county
LEFT JOIN tx_ctr
ON t1.tbl = 't3' AND t1.rid = t3.id AND t3.county = :county
WHERE t1.tag LIKE :tag
AND COALESCE(t2.cid, t3.ttl) IS NOT NULL
GROUP BY title ASC";
$qtag = '"%'.$tag.'%"';
$stmt = $db->prepare($sql);
$stmt->execute(['county' => $cnty, 'tag' => $qtag]);
$data = $stmt->fetchAll();
解决方案
您错过了命名参数的“:”
您的执行语句必须如下所示:
$stmt->execute([':county' => $cnty, ':tag' => $qtag]);
推荐阅读
- mysql - 如何在 MySQL 查询中根据美国时区显示日期时间?
- r - 在 data.table 上应用函数并将结果存储在列表中
- xamarin - 如何在 Xamarin Forms 中打开滑动时更改滑动视图内容的不透明度?
- sql - 如何使 SUM() 仅对 MIN() 选择的乘客求和?
- c++ - 错误:
, 'cstdalign' 文件未找到,运行 C++17 - java - 运行 Wrapped Jar 时未找到 JavaFX AlertType 类(JavaFX + SpringBoot + Gradle + launch4j)
- git - 在 CI/CD 管道 (AWS CodeBuild) 中运行构建时出现 Git Refs 错误
- python - 从数据帧中查找字符串中子字符串的索引
- java - ViewFlipper 未显示其所有子项
- python - 有没有办法在 Odoo 12 的树视图中的操作菜单中添加额外的操作?