MacとMAMPの環境でPHPを学習するという方も多いと思います。
私が、上記の環境で学習していてPHPからMySQLに接続する時、ちょっとハマってしまった点があったのでこちらに忘備録も兼ねて記載しておきます。
#PDOの引数
PHPでPDOのオブジェクトを生成してデータベースに接続する際には、引数として以下のように3つ必要です。
new PDO('接続文字列','ユーザー名','パスワード')
実際にMacとMAMPの環境で、PHPからMySQLのmydbという名前のデーターベースに接続する場合は、
'接続文字列'
のところには接続するための情報としてmysql:dbname=mydb;host=localhost;charset=utf8
を、'ユーザー名'
、'パスワード'
としてroot
を記入します。
完成するとこんな感じ。
new PDO('mysql:dbname=mydb;host=localhost;charset=utf8','root', 'root');
ちなみに、XAMPPを使用した環境でデータベースに接続する際は、
new PDO('mysql:dbname=mydb;host=127.0.0.1;charset=utf8','root', '');
と書きます。
PHP関連の書籍や動画教材などでXAMPPを使った環境で説明がされている場合もよくあります。
そのままコードを書き写しても、MAMPでは正しく接続できないということもありますので注意が必要です。
接続文字列のところで、MAMPではhost=
に続くのがlocalhost
なのに対して、XAMPPでは127.0.0.1
になっています。
またパスワードがMAMPでは'root'
と入力するのに対して、XAMPPでは''
(空文字)であるというのが具体的な違いです。(MAMPもXAMPPもユーザー名もパスワードも、"初期値"の場合なので、自分で変更したりしたら変わります。)
#最後に
私は、XAMPPで解説している情報をもとにMAMPで学習しており、接続文字列の127.0.0.1
とlocalhost
の違いのところでハマっていました(汗)