2017-09-06 7 views
-6

上で投げ、私はあなたのPDOコンストラクタが間違っている致命的なエラーに致命的なエラー:不明なエラー:フェッチメンバ関数の呼び出し()ブールの#0に{メイン}ライン7

Fatal error: Uncaught Error: Call to a member function fetch() on boolean in C:\xampp\htdocs\sonu\PDO\test.php:7 Stack trace: #0 {main} thrown in C:\xampp\htdocs\sonu\PDO\test.php on line 7

$db = new PDO('mysql:host=localhost;root', 'test', ''); 

$query = $db->query("SELECT * FROM sonu"); 

while($row = $query->fetch()) 
{ 
    print_r($row); 
} 
+0

データベースを選択していないようですが、dsn文字列が間違っています。 'ルート'とは何でしょうか? – jeroen

+0

'mysql:dbname = testdb;ホスト= 127.0.0.1' – Script47

答えて

0

を得ました。 PDOインスタンスが接続するデータベースを宣言していません。

$db = new PDO('mysql:host=localhost;root', 'test', ''); 

DSNには、データベース名とホスト名が必要です。あなたはそれの最後にrootを持っていてはなりません。

上の行はそうのようにする必要があります:

$db = new PDO('mysql:host=localhost;dbname=dbnamehere', 'test', ''); 

は、将来的にdocumentationを見てください、あなたのコードがそれに対応していることを確認してください。

+0

はdb名が' test'です。ユーザー名は 'root'です。私は推測する。わからない...:p –

+0

可能であれば、OPはドキュメントを見るときにそれを認識しているはずです。 – MinistryofChaps

関連する問題