致命错误:未捕获错误:在C:\ xampp \ htdocs \ karte.php中调用boolean上的成员函数fetch():32堆栈跟踪:#0 {main}抛出

时间:2016-02-11 17:47:35

标签: php mysql sql database pdo

我有一个无法解决的问题。在我的口袋妖怪数据库中,我希望点击一个链接,显示我在城市中可以找到哪个培训师(该城市应由用户选择为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 个答案:

答案 0 :(得分:2)

两件事: -

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