2017-07-22 71 views
-1

经过研究,我没有找到任何解决方案。请帮帮我。 我的数据库是这样的:致命错误:未捕获错误:调用成员函数提取()布尔

enter image description here

$article = array($_GET['id']); 
    $bdd = new PDO('mysql:host=localhost;dbname=matr;charset=utf8', 'matr', 'vicecity'); 
    $articletitre = $bdd->prepare('SELECT titre FROM articles WHERE id=?'); 
    $articletitre = $articletitre->execute($article); 
    $articletitre = $articletitre->fetch(); 

,我有这个错误

Fatal Error: Uncaught Error: Call To A Member Function Fetch() On Boolean

+0

定义'$ bdd'后,加上'$ bdd->的setAttribute(PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION);' - 这将设置PDO引发异常,这是您不能忽略的 - 这意味着将显示并记录任何错误(如果启用了PHP错误日志记录)。 – Qirel

+0

我加了你的线,没有更多的输出 –

+0

'print_r($ articletitre-> errorInfo());'? – Qirel

回答

1

问题就出在这个声明中,

$articletitre = $articletitre->execute($article); 
^^^^^^^^^^^^^  

->execute()收益要么TRUEFALSE执行准备好的语句后。这就是为什么​​失败,因为你试图在布尔值上执行->fetch()方法。所以,你的代码应该是这样的:

$article = array($_GET['id']); 
$bdd = new PDO('mysql:host=localhost;dbname=matr;charset=utf8', 'matr', 'vicecity'); 
$articletitre = $bdd->prepare('SELECT titre FROM articles WHERE id=?'); 
$articletitre->execute($article); 
$articletitre = $articletitre->fetch(); 
相关问题