php - 2 个相同的 SQL 查询 ...一个有效,一个得到错误消息“调用成员函数 prepare() on null”
问题描述
我从事一个更大的数据库项目。现在我变得好奇,因为有相同的 SQL 查询,其中第一个获取错误,第二个相同,工作正常。我不知道。与此同时,我怀疑自己的想法。
这是简短的脚本部分:
$sql = "SELECT * FROM `wt_name` WHERE `n_surname` LIKE 'A%' AND `n_file` = '4' AND `n_type` = 'NAME' GROUP BY `n_id` ORDER BY `n_surname`, `n_givn` ";
$statement = $pdo->prepare($sql);
$erg = $statement->execute();
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
$anzreihen = $statement->rowCount();
$sqlANZ = "SELECT * FROM `wt_name` WHERE `n_surname` LIKE 'A%' AND `n_file` = '4' AND `n_type` = 'NAME' GROUP BY `n_id` ORDER BY `n_surname`, `n_givn` ";
$statementANZ = $pdo->prepare($sqlANZ);
$erg2 = $statementANZ->execute();
$ergANZ = $statementANZ->fetchAll(PDO::FETCH_ASSOC);
$anzahlGesamt = $statementANZ->rowCount();
如果我不是盲人,$sql 和 $sqlANZ 应该是同一个查询。$sqlANZ 工作正常,$erganz 得到了它应该得到的数据集。但是 $sql 将不起作用并给出错误消息:
在 null 上调用成员函数 prepare()
与此同时,我不知道该怎么办了。有没有人可以检查脚本并帮助我,找到错误,我似乎看不到/找到?
(仅供参考:如果至少在实际版本中有效,第一个查询将由 LIMIT 添加)
谢谢巴吉拉
解决方案
这行得通吗?
$sql = "
SELECT *
FROM `wt_name`
WHERE `n_surname`
LIKE 'A%'
AND `n_file` = '4'
AND `n_type` = 'NAME'
GROUP
BY `n_id`
ORDER
BY `n_surname`
, `n_givn`
";
然后 pdo 想要 "`" 和 '4' 而不是 4
推荐阅读
- mysql - 系统设计问题(Twitter 雪花)
- css - 我的 CSS 类在样式组件的生产版本中在哪里
- python - 在 Python 中使用递归查找原材料的数量
- php - 如何为涉及 MySQL 日期和时间类型的查询绑定 PDO 值
- maven - 我正在将 Maven WAR 构建迁移到 Gradle。如何让过滤器块以相同的方式运行?
- javascript - JavaScript 输入验证 - 意外结果
- visual-studio-code - 如何在 Visual Studio Code 中限制“查找所有引用”搜索的范围?
- java - 使用 PDFbox 生成可下载的 PDF
- java - 在 Postman 中获取 200 个代码,但在通过放心自动执行相同请求时获取 400 个代码
- elasticsearch - 如何使用通配符查询 ElasticSearch