致命错误:未捕获错误:在 C:xampphtdocskarte.php:32 堆栈跟踪:#0 {main}


Fatal error: Uncaught Error: Call to a member function fetch() on boolean in C:xampphtdocskarte.php:32 Stack trace: #0 {main} thrown in

我有一个无法解决的问题。在我的口袋妖怪数据库中,我希望点击一个链接,该链接显示我可以在城市中找到哪个培训师(城市应由用户选择为 href)

 <!DOCTYPE html>
<html>
 <head>
  <title></title>
 </head>
 <body>
   <a href="?spalte=7">Malvenfroh City</a>
<?php
if (isset($_GET["spalte"])) {
 $spalte = $_GET["spalte"];
}
else {
 $spalte = 'Wurzelheim';
}
$verbindung = new PDO ('mysql:host=localhost;dbname=pokemon', 'root', '');
$abfrage = $verbindung->query("SELECT trainer_name from trainer,ort WHERE ort_id=`".$spalte ."` AND trainer.ort_id=ort.id");
while( $row = $abfrage->fetch(PDO::FETCH_OBJ)) {
        echo $row['trainer_name'].'<br>'; 

}
?>          
</body>
</html>

两件事:-

1.从查询中删除 '(反引号)

2. AND trainer.ort_id=ort.id 我在代码中的任何地方都没有看到ort.id值。因此,要么删除它,要么尝试为它分配值。

所以你的查询将是这样的:-

$abfrage = $verbindung->query("SELECT trainer_name from trainer,ort WHERE ort_id=".$spalte);

$abfrage = $verbindung->query("SELECT trainer_name from trainer,ort WHERE ort_id= $spalte");

同样在我们的讨论结束时,您需要更改PDO::FETCH_OBJ to PDO::FETCH_ASSOC .