人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

XAMPPでMySQLとPHPで簡単なデータベースアクセスを作ろうとしています。
検索文字を指定するとデータベースから検索し、該当を表示する
index.htmlからPHPを呼び出し、PDOを使用する簡単なプログラムを教えてください。その際、簡単な説明も頂けると助かります。
宜しくお願いします。

●質問者: gontakun_55
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● ymlab
●200ポイント ベストアンサー

http://www.flatflag.nir87.com/pdo_construct-912
http://www.flatflag.nir87.com/select-932
あたりが易しく解説をしてくれていると感じます。

上記サイトから必要な内容をコピペすると、以下のようになるかと。
ただし、前提として、データベースが作られているものとします。
データベースそのものも、PHPからcreateできるのですが、ややこしければ、
MySQL WorkBenchが有名です。
https://celtislab.net/archives/20130828/mysql-workbench-%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AB%E6%8E%A5%E7%B6%9A%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/
PHPMyAdmin も有名ですね。私も最初はPHPMyAdminを使っていました。
https://www.phpmyadmin.net/
ただこれは、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で実行してみてください。


gontakun_55さんのコメント
詳しく説明まで記載頂きありがとうございました! 大変助かりました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ