我有一个脚本,用于运行数据库查询,但是当尝试运行此脚本时,我收到错误致命错误:在/ var / www中的非对象上调用成员函数fetch()第209 - 209行上的/Quack/doSetup.php是while循环。我99%肯定这对应于我的数据库中有一个缺少的列,但是我无法确定它不喜欢哪一个。我希望这个尝试捕获系统可能告诉我,它没有。有什么方法可以让我得到更多关于它找不到的信息吗?
try{
$query = $db->query("SELECT articles . title FROM articles");
$query = $db->query("SELECT title FROM articles");
$SQLGetLogs = $conn -> query("SELECT `payments`.* , `plans`.`name` AS `planname`, `users`.`username` FROM `payments` LEFT JOIN `plans` ON `payments`.`plan` = `plans`.`ID` LEFT JOIN `users` ON `payments`.`user` = `users`.`ID` ORDER BY `ID` DESC");
while($getInfo = $SQLGetLogs -> fetch(PDO::FETCH_ASSOC)){
echo 'true';
}
}
catch(PDOException $e){echo 'My test failed: ' . $e->getMessage();}
答案 0 :(得分:1)
您必须设置错误模式以抛出异常才能获取它们,否则只设置内部错误代码:
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
答案 1 :(得分:0)
您收到的错误是抱怨$ SQLGetLogs不是有效对象,这意味着无论您将其设置为什么都会返回无效结果。
的SQL语句
$SQLGetLogs = $conn -> query("SELECT `payments`.* , `plans`.`name` AS `planname`, `users`.`username` FROM `payments` LEFT JOIN `plans` ON `payments`.`plan` = `plans`.`ID` LEFT JOIN `users` ON `payments`.`user` = `users`.`ID` ORDER BY `ID` DESC");
可能是失败或者没有产生你想要的输出。您应该在数据库中手动运行查询并检查您获得的输出。
这里的$ conn应该是$ db吗?