ブール上)(フェッチメンバ関数への呼び出しは、自分のコードである:致命的なエラー:ここ{パス}
$money = $db_con
->prepare(" SELECT SUM(asker_amount) asker, SUM(responder_amount) responder
FROM money WHERE post_id = ? AND author_id = ? AND paid IS NULL")
->execute(array($ques_id, $author_ques_id))
->fetch(PDO::FETCH_ASSOC);
$asker_amount = $money['asker'];
$responder_amount = $money['responder'];
それが実行してこのエラーをスローしない:
Fatal error: Call to a member function fetch() on boolean in {file path} on line 5 (
->fetch(...
)
オクラホマどうしましたか?それをどうやって修正することができますか?
注:このクエリも同様に動作し、phpmyadminでテストしました。
'execute'関数はブール値を返します:http://php.net/manual/en/pdostatement.execute.php –
@pgmann' '$ money'を' '実行するために連鎖させるのではなく、 () '? – stack
明らかに、ここでうまくいきません。そのプロセスのいくつかの段階で失敗し、真偽値が返されます。一般的に、決してチェーン化されたDBコールは決してチェーン化されません。それはまったく失敗することはないと想定しています。それは間違った態度です。 SQL構文が100%完璧であっても、クエリは失敗する可能性があります。 **常に**失敗を想定し、失敗を確認し(すべての段階で)、成功を楽しい驚きとして扱います。 –