- ベストアンサー
phpでMySQLで作成したdbを表示したい
- 現在phpのプログラムの学習を行っています。phpmyadminで作成したデータベースを読み込もうとしているのですが、うまくいきません。
- 参考書やサイトも参考にしたのですが、警告が出ています。よくわからなくなってきましたので、教えていただきたいです。
- MySQLへの接続に失敗しています。クエリの送信も失敗しており、データの取得もできていません。情報が足りていない可能性がありますので、正しい接続情報を確認してください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
SELECT * FROM my_items このクエリの実行に失敗して、$recordSet に FALSE が代入されているだけのことです。 結果をチェックせずにこのようなコードは書いてはいけません。 ちなみにmysql関数は現在「強く非推奨」であり、PDOクラスを使うことが最も推奨されています。 PDOクラスならばSQL実行失敗時に自動的に例外をスローさせることができ、いちいち1回ごとに「 … or die() 」とか書かなくていいのでラクです。 mysql関数を使っているような古い参考書の場合、買い直しを検討してください。 http://ideone.com/xF40Kn <?php try { ____ ____$host = 'localhost'; // ホスト ____$charset = 'utf8'; // 文字セット ____$dbname = 'test'; // データベース名 ____$user = 'root'; // ユーザー名 ____$pass = ''; // パスワード ____ ____// PDOオブジェクト生成 ____$dsn = "mysql:dbname={$dbname};host={$host};charset={$charset}"; ____$pdo = new PDO($dsn, $user, $pass, array( ________// SQLエラー時に例外をスロー ________PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, ________// fetchやfetchAllのデフォルトフェッチスタイルを連想配列形式にする ________// (mysql_fetch_assocと同じスタイル) ________PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, ____)); ____ ____// t01テーブルとprefectureテーブルの行数合計を取得するSQL ____$sql = 'SELECT COUNT(*) FROM t01 prefecture'; ____// 先頭カラムの値を取得して整数にキャスト ____$num = (int)$pdo->query($sql)->fetchColumn(); ____ ____// my_itemsテーブルのレコードをすべて取得するSQL ____$sql = 'SELECT * FROM my_items'; ____// 2次元配列で全件取得 ____$rows = $pdo->query($sql)->fetchAll(); ____ ____// 結果を表示 ____echo '<pre>'; ____var_dump( ________'t01テーブルとprefectureテーブルの行数合計', $num, ________'my_itemsテーブルのレコード', $rows ____); ____echo '</pre>'; ____ } catch (Exception $e) { ____ ____// 例外発生時 ____echo '<pre>'; ____var_dump($e->getMessage()); ____echo '</pre>'; ____ } マニュアルに一度目を通してください。 mysql関数 http://www.php.net/manual/ja/ref.mysql.php pdoクラス http://php.net/manual/ja/book.pdo.php
お礼
情報ありがとうございます。 図書館で借りてきた本が古すぎたようです。 もうmySQL関数は捨ててPDOを使ってみます。 ありがとうございました!