PHPからmysqlの操作


# 初めに

前回の[記事](http://qiita.com/tiwu_offical/items/5ff3fa38611de058704a)では　centOSにmysqlをインストールしました。

今回はPHPを利用してmysqlのデータを操作したいと思います。

ステップ１→[vagrantを用いたPHPの環境構築](http://qiita.com/tiwu_offical/items/f135e6b6fbbe3ec6aa54)
ステップ２→[centOS6.5にmysql5.6をインストールする](http://qiita.com/tiwu_offical/items/5ff3fa38611de058704a)
ステップ３(本記事)→[PHPからmysqlの操作](http://qiita.com/tiwu_offical/items/3415fad87fb3a6d68666)

### 前提条件

* 前回の[記事](http://qiita.com/tiwu_offical/items/5ff3fa38611de058704a)を読んでいる
* 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_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ファイルを実行します。

```shell-session

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
	
```php: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の環境が揃ったので、好きなだけ開発ができます。
次回の記事は未定になります。