MySQLとPHPの連携
PHPからMySQLを操作する方法をご紹介します。
PHP、MySQL単体での動作はすでに完了していることが前提となります。
PHPの設定は当サイト内「PHP( RPM 版)の導入」で解説しています。
バージョンはちょっと古いですが、基本的には同じだと思います。もし異なるようでしたら、検索サイト等でお調べください。
MySQLの設定方法は当サイト内「MySQL の導入」で解説しています。内容は2008年4月現在、最新のものになっております。
ページ内コンテンツ一覧
MySQLとPHPの接続モジュールをインストールします。
最近のOSでは元々インストールされているものもありますが、改めてインストールすることをお勧めします。
私はこれでハマりました。。。
# yum install php-mysql
念のため Apache を再起動します。
# /etc/rc.d/init.d/httpd restart
当サイト内「MySQL の導入」の中で紹介している「テストデータで動作確認」で作成したデータベースを利用したいと思います。
「sample」データベースに対して全権限を持つユーザを作成します。
# mysql -u root -p ← rootでログイン Enter password: ← パスワードを入力 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 to server version: 4.1.20 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> grant all privileges on データベース名.* to ユーザ名@localhost identified by 'パスワード'; ← ユーザを作成 mysql> \q ← ログアウト Bye
以下を参考にサンプルスクリプトを作成し、PHPが動作するディレクトリに格納してください。 パーミッションの設定も忘れずに。
文字コードは必ずUTF-8で作成するようにしてください!
上記スクリプトを実行し、先述の「テストデータで動作確認」で作成したデータベースなら、以下が表示がされます。<html> <head> <meta http-equiv=content-type content="text/html; charset=UTF-8"> <title>PHPのテスト</title> </head> <body> <?php // サーバ接続 $con = mysql_connect("localhost","ユーザ名","パスワード") or die("接続失敗"); // データベースを選択 mysql_select_db('sample',$con) or die("DBがありません"); // 文字化け防止のおまじない $strsql = "SET CHARACTER SET UTF8"; mysql_query($strsql,$con); $strsql = "select * from sample_tbl"; // SQLの実行 $res = mysql_query($strsql,$con); print "照会件数= " . mysql_num_rows($res) . "<br>"; // 展開 while ($item = mysql_fetch_array($res)) { print $item[0]." ".$item[1]."<br>"; } // 接続をクローズ mysql_close($con); ?> </body> </html>
照会件数= 2
1 GODZILLA
2 ゴジラ
日本語が文字化けしていないことを確認してください。
以上です。