Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP获取错误_Php_Mysql_Pdo - Fatal编程技术网

使用PHP获取错误

使用PHP获取错误,php,mysql,pdo,Php,Mysql,Pdo,当我运行以下PHP代码时: <?php $username = "root"; $password = "allen123"; $conn = new PDO('mysql:host=localhost;dbname=test', $username, $password); ?> 您的php.ini文件中似乎有一个无效的套接字。将pdo_-mysql.default_-socket设置更改为空字符串以使用默认套接字。我在这里遇到了麻烦,但我认为pdo-mysql.default_

当我运行以下PHP代码时:

<?php
$username = "root";
$password = "allen123";
$conn = new PDO('mysql:host=localhost;dbname=test', $username, $password);
?>

您的php.ini文件中似乎有一个无效的套接字。将
pdo_-mysql.default_-socket
设置更改为空字符串以使用默认套接字。

我在这里遇到了麻烦,但我认为
pdo-mysql.default_-socket
中定义的
my.cnf
的物理路径与服务器上
mysqld.sock
的物理位置不同。@ohgodhy:+1(但您可能是指
pdo_mysql的
php.ini
pdo_mysql的
default_socket
my.cnf
my.cnf
不匹配。@user302975您可能只有文件所有者的读/写权限。您需要将写权限设置为“其他”能够编写它。但是这很糟糕。使用sudo.System文件不应该是世界可写的。此外,您可以使用任何文本编辑器打开它。例如,您可以使用
sudo open-a TextEdit php.ini
在TextEdit中将其作为管理员进行编辑(与其他编辑器类似)。您不仅限于
nano
。很高兴您的机器正常工作,即使我错了。正如我所说,您对Macports没有太多经验。
To use mysqlnd with a local MySQL server, edit /opt/local/etc/php55/php.ini and set     mysql.default_socket, mysqli.default_socket and pdo_mysql.default_socket to the path
to your MySQL server's socket file.

For mysql5, use /opt/local/var/run/mysql5/mysqld.sock
For mysql51, use /opt/local/var/run/mysql51/mysqld.sock
For mysql55, use /opt/local/var/run/mysql55/mysqld.sock
For mysql56, use /opt/local/var/run/mysql56/mysqld.sock
For mariadb, use /opt/local/var/run/mariadb/mysqld.sock
For percona, use /opt/local/var/run/percona/mysqld.sock

--->  Cleaning php55-mysql
--->  Updating database of binaries: 100.0%
--->  Scanning binaries for linking errors: 100.0%
--->  No broken files found.