○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に戻って同じようにやってみる。