我是使用 PDO 发出数据库请求的新手,需要一点帮助。我有以下数据库调用:
$stmt1 = $pdo->prepare('
SELECT * FROM news WHERE pub_date >= ? AND pub_date < ? AND display = 1 ORDER BY pub_date DESC
UNION
SELECT * FROM vs_news WHERE pub_date >= ? AND pub_date < ? AND display = 1 ORDER BY pub_date DESC
');
$stmt1->bindParam(1, $col_start);
$stmt1->bindParam(2, $col_end);
$stmt1->execute();
Run Code Online (Sandbox Code Playgroud)
我已经阅读了足够多的内容,认为 UNION 与 PDO 兼容,但我似乎无法正确获取代码,也找不到完整代码格式的示例。
两个表中的字段相同,并且 db 调用仅适用于一个或另一个表,但不适用于我展示的 UNIION。
有人可以指出我的问题在哪里吗?
谢谢
使用 ?意味着你需要为每个匹配一个参数?
使用这种方法:
$stmt1 = $pdo->prepare('
SELECT * FROM news WHERE pub_date >= :date1 AND pub_date < :date2 AND display = 1 ORDER BY pub_date DESC
UNION
SELECT * FROM vs_news WHERE pub_date >= :date1 AND pub_date < :date2 AND display = 1 ORDER BY pub_date DESC
');
$stmt1->bindParam(':date1', $col_start);
$stmt1->bindParam(':date2', $col_end);
$stmt1->execute();
Run Code Online (Sandbox Code Playgroud)
还; 使用联合,确保在两个查询中使用相同数量的列。
| 归档时间: |
|
| 查看次数: |
5902 次 |
| 最近记录: |