質問: XAMPPでMySQLとPHPで簡単なデータベースアクセスを作ろうとしています。 検索文字を指定するとデータベースから検索し、該当を表示する index.htmlからPHPを呼び出し、PDOを使用する簡単なプログラムを教えてください。その際、簡単な説明も頂けると助かります。 宜しくお願いします。
回答: あたりが易しく解説をしてくれていると感じます。 上記サイトから必要な内容をコピペすると、以下のようになるかと。 ただし、前提として、データベースが作られているものとします。 データベースそのものも、PHPからcreateできるのですが、ややこしければ、 MySQL WorkBenchが有名です。 PHPMyAdmin も有名ですね。私も最初はPHPMyAdminを使っていました。 ただこれは、Webベースで動いているので、面倒といえば面倒です。 そういうわけで、データベースを上記サイトのように作ります。 テーブル名はcitiesですね。 最初のコードは、 // データベースに接続するために必要なデータソースを変数に格納 // mysql:host=ホスト名;dbname=データベース名;charset=文字エンコード $dsn = 'mysql:host=mysql000.db.sakura.ne.jp;dbname=example_php;charset=utf8'; // データベースのユーザー名 $user = 'user'; // データベースのパスワード $password = 'pass'; // tryにPDOの処理を記述 try { // PDOインスタンスを生成 $dbh = new PDO($dsn, $user, $password); // エラー(例外)が発生した時の処理を記述 } catch (PDOException $e) { // エラーメッセージを表示させる echo 'データベースにアクセスできません!' . $e->getMessage(); // 強制終了 exit; } これですね。 ここで、$dsnのhostは、mysql・・・ではなく、適切な文字を入力してください。 id:hontakun_55 さんの環境が分からないのですが、自分のPC上で実行しているのであれば、 localhost になります。 dbnameは、cities ですね。 $userと$passwordは、データベースを作るときに設定しているものを入力します。 ここまで実行すると、データベースが存在してユーザー名とパスワードがあっていれば、強制終了することなく、プログラムが終了します。 この次は、 // SELECT文を変数に格納 $sql = "SELECT * FROM cities"; // SQLステートメントを実行し、結果を変数に格納 $stmt = $dbh->query($sql); // foreach文で配列の中身を一行ずつ出力 foreach ($stmt as $row) { // データベースのフィールド名で出力 echo $row['name'].':'.$row['population'].'人'; // 改行を入れる echo ' '; } これを、まずはtry { } の, $dbh = new PDO($dsn, $user, $password); の後に入れてください。 あとは、コメントの通りに実行されていきます。 頑張ってください! ※index.html からのPHP実行はapacheの設定によっては、うまく動かない可能性があります。 [PHPの実行に .htmlの拡張子を許可する必要がある。] なので、index.htmlで、そもそもPHPが動かない場合は、index.phpで実行してみてください。