phpでドットインストールの動画を見て、下のコードを書きました。
php
1<?php 2 3define('DB_DATABASE', 'test_db'); //データベース指定 4define('DB_USERNAME', 'dbuser'); //データベースユーザ 5define('DB_PASSWORD', '********'); //データベースパスワード 6define('PDO_DSN', 'mysql:dbhost=localhost;dbname=' .DB_DATABASE); //データベースに接続するための文字列 7 8try { 9 //connect 10 $db = new PDO(PDO_DSN, DB_USERNAME, DB_PASSWORD); 11 $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 12 13 //insert 14 $db->exec("insert into users (name, score) values ('ryo', '55')"); 15 echo "user added!"; 16 17 //disconnect 18 $db = null; 19}catch (PDOException $e){ 20 echo $e->getMessage(); 21 exit; 22}
このindex.phpにアクセスすると、データベースに情報を追加するというシンプルなコードです。
ブラウザから接続すると、SQLSTATE[HY000] [2002] No such file or directory
とエラーが出ます。
エラーの内容は、そのような(接続した)ファイルは見つからないと言われました。
原因として思ったのが、このデータベースのアクセス権をPHPが持っていないことかな?と思いました。
でも、解決方法がわかりません。原因がそれなのかもわかりません。教えて下さい。
OS Mac10.12.2
MySQL 5.7.16
PHP 7.0.14
追記
sudo chmod 777 /usr/local/var/mysql/
ですべてのプログラム、ユーザがmysqlにアクセスできるようにパーミッションを変更したのですが、うまくできなかったので、データベースのアクセス権をPHPが持っていないことが原因ではないと思います。
やり方がちがっていたら、教えてください。
回答4件
あなたの回答
tips
プレビュー