初めに
前回の記事では centOSにmysqlをインストールしました。
今回はPHPを利用してmysqlのデータを操作したいと思います。
ステップ1→vagrantを用いたPHPの環境構築
ステップ2→centOS6.5にmysql5.6をインストールする
ステップ3(本記事)→PHPからmysqlの操作
前提条件
- 前回の記事を読んでいる
- centOSにmysql,PHP,Apacheをインストール済み
開発環境
- OS X Yosemite
- Windowsでも動作確認済み
1.開発環境構築
まず、PHPでmysqlを扱うためphp-mysqlをインストールします。
centOSにログインして、下記コマンドを打ってインストールします。
$ sudo yum install php-mysql
2.mysqlにデータの挿入
次にmysqlにDBを作成し、テーブルを作りデータを挿入していきます。
mysql起動してない場合は起動してログインします。
$ sudo /etc/init.d/mysqld start
で、起動。
$ sudo mysql -uroot -p
でログインします。
ログインしたらまず、データベースを作成します。
$ mysql> create database NAME;
NAME -> データベースの名前
(例)
$ mysql> create database testdb;
Query OK, 1 row affected (0.00 sec)
と表示されたら成功です。
データベースを作成したら、作成したデータベースを利用することを宣言します。
$ mysql> use NAME;
NAME -> データベースの名前
(例)
$ mysql> use testdb;
Database changed
と表示されたら成功です。
次にデータベースにテーブルを作成します。
今回はidとnameを持ったtest_tableを作成します。
$ mysql> create table test_table(id int(11),name varchar(255));
Query OK, 0 rows affected (0.02 sec)
と表示されたら成功です。
つぎにデータをテーブルに挿入します。
$ mysql> insert into test_table values(1,'testname');
Query OK, 1 row affected (0.00 sec)
と表示されたら成功です。挿入されたデータを確認します。
$ mysql> select * from test_table;
+------+------------+
| id | name |
+------+------------+
| 1 | testname |
+------+------------+
1 rows in set (0.00 sec)
と表示されると思います。
3.PHPからmysqlの操作
次にPHPで作ったテーブルの情報を取得したいと思います。
mysqlからログアウトし、/vagrant/htmlに移動します。
$ mysql> exit
$ cd /vagrant/html
次にmysql_sample.phpを作成します。
<?php
//mysqlに接続
$link = mysql_connect('localhost','root','pass');
//DBの選択
$db_selected = mysql_select_db('testdb',$link);
//SQL文の発行
$result = mysql_query('select * from test_table');
//結果を連想配列に変換
$row = mysql_fetch_assoc($result);
//表示
var_dump($row);
//close処理
$close_flag = mysql_close($link);
?>
$link = mysql_connect('localhost','root','pass');
pass -> は自分が設定したパスワードを入力してください。
mysql_sample.phpを作成したら
$ php mysql_sample.php
でPHPファイルを実行します。
array(2) {
["id"]=>
string(1) "1"
["name"]=>
string(5) "testname"
}
先ほどテーブルに挿入した情報が表示されたら成功です。
4.ブラウザで確認
次にブラウザでデータを確認したいと思います。
まずmysql.sockの設定をします。
$ mysql_config --socket
/var/lib/mysql/mysql.sock
でmysql.sockの場所を確認します。
次に、php.iniにmysql.sockの追記をします。
$ sudo vi /etc/php.ini
mysql.default_scoketで検索をすると1100行目あたりに
mysql.default_scoket =
と記述されているので、mysql.sockの場所を追記します。
追記後
mysql.default_scoket = /var/lib/mysql/mysql.sock
これで設定は終わりです。/vagrant/htmlに移動してmysql_sample2.phpを作成して
ブラウザから確認します。
$ cd /vagrant/html
$ vi mysql_sample2.php
<html>
<body>
<?php
$link = mysql_connect('localhost','root','pass');
$db_selected = mysql_select_db('testdb',$link);
$result = mysql_query('select * from test_table');
$row = mysql_fetch_assoc($result);
echo '<pre>';
var_dump($row);
echo '</pre>';
$close_flag = mysql_close($link);
?>
</body>
</html>
先ほどのmysql_sample.phpにhtmlタグとbodyタグを追加し、
整形して表示するためpreタグで囲います。
Apacheを立ち上げ、192.168.33.10/mysql2_sample.php
にアクセスしてみましょう。
array(2) {
["id"]=>
string(1) "1"
["name"]=>
string(5) "testname"
}
ブラウザからテーブルの値を確認できると思います。
5.終わりに
以上でPHPからのmysqlの操作の記事は終わりです。
これでLAMPの環境が揃ったので、好きなだけ開発ができます。
次回の記事は未定になります。