WindowsでphpとMySQLの連携

○2017/8/15

Debianでの設定で困ったので、
いったんWindowsで設定してみることに。
(Apacheとphpの連携は省略)

参考サイト:
http://www.phpbook.jp/tutorial/mysql/index1.html

php.ini の中の”extension=php_mysql.dll”を有効に。
したいんだけど、その項目がない。(php_mysqli.dll ならある。)
ちなみに、バージョンはphp7.0.7 win32bit版用。(参考サイトは7.0.11 win64bit)

バージョンの違いか?
じゃない気がする。
そんな急に変わらんだろ。

なんか、拡張モジュール”mysql”(“mysql_connect()”を含むモジュール)は、
「php5.5で非推奨になり、7.0.0で削除された」って書いてある。
http://php.net/manual/ja/function.mysql-connect.php
“mysqli”、または”pdo-mysql”を使ってくださいと。

なので、そうします。
で、PDOはMySQLでもPostgreSQLとかSQLiteってやつでも使えるらしいけど、
http://php.net/manual/ja/mysqlinfo.api.choosing.php
http://www.phpbook.jp/tutorial/pdo/
とりあえず当面MySQLしか使わないので、”mysqli”を使っていこう。

設定

●phpの設定
・php.ini の中の”extension=php_mysqli.dll”のコメントアウトを外す。
・extフォルダに”php_mysqli.dll”ファイルがあることを確認。
・php.ini の中の”extension_dir”のパスをextフォルダに設定。

●MySQLの設定(基本的にDebianでやったのと同じ)

>mysql -u root -p
[パスワード入力]
> create database phptest
→エラー1820 : 「その前にパスワード変えろよ」的な事言われた。
> alter user 'root'@'localhost' identified by '[新しいパスワード]'
参考:http://swiftfe0.hatenablog.com/entry/2016/11/22/010631

・データベースとテーブルの作成
> create database phptest
> use phptest;
> create table hanbai(
-> id int not null primary key,
-> shouhin_id int,
-> uriage int);
> create table shouhin(
-> id int not null primary key,
-> name varchar(20));

・phpテスト用ユーザーの作成
> create user 'phpuser'@'localhost' identified by 'password';
> grant all on phptest.* to 'phpuser'@'localhost';

・データの入力
> insert into shouhin values
-> (1, "テレビ"),
-> (2, "DVD"),
-> (3, "パソコン");
> insert into shouhin values
-> (1, 1, 320000),
-> (2, 2, 160000),
-> (3, 3, 180000),
-> (4, 1, 128000),
-> (5, 3, 98000),
-> (6, 2, 140000),
-> (7, 1, 175000);

>exit

●テスト用phpファイルの作成

http://php.net/manual/ja/mysqli.construct.phpの例1を使用
・ユーザー名、パスワード、データベース名は変更

●テスト
ブラウザで確認してみる。
→エラー:Class mysqli が見つかりません的な・・・

php.ini の編集が反映されてないのかな?
Apache再起動、ブラウザで確認。
(“php_mysqli.dll”が、ウイルスソフトに引っかかるので、
ウイルスソフトを一時的に無効にすして再起動。)
→ Success… localhost via TCP/IP

OKだな。

一応、これでphpとMySQLの連携についてわかってきたので、
Debianに戻って同じようにやってみる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です