Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.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 使用PDO连接MySQL_Php_Mysql_Pdo - Fatal编程技术网

Php 使用PDO连接MySQL

Php 使用PDO连接MySQL,php,mysql,pdo,Php,Mysql,Pdo,我使用以下字符串连接到本地主机上的mysql数据库(我没有根访问权限)。我确实读过关于堆栈溢出的相关文章 我在php文件中定义了以下内容: ini_set('mysqli.default_socket', '/tmp/mysql5.sock'); ini_set('mysql.default_socket', '/tmp/mysql5.sock'); ini_set('pdo_mysql.default_socket', '/tmp/mysql5.sock'); 当我使用: 'mysql:lo

我使用以下字符串连接到本地主机上的mysql数据库(我没有根访问权限)。我确实读过关于堆栈溢出的相关文章

我在php文件中定义了以下内容:

ini_set('mysqli.default_socket', '/tmp/mysql5.sock');
ini_set('mysql.default_socket', '/tmp/mysql5.sock');
ini_set('pdo_mysql.default_socket', '/tmp/mysql5.sock');
当我使用:

'mysql:localhost:/tmp/mysql5.sock;dbname='.DB_NAME.';charset=utf8'
'mysql:host=127.0.0.1;dbname='.DB_NAME.';'

我知道了

SQLSTATE[HY000][2002]没有这样的文件或目录

当我使用:

'mysql:localhost:/tmp/mysql5.sock;dbname='.DB_NAME.';charset=utf8'
'mysql:host=127.0.0.1;dbname='.DB_NAME.';'
我知道了

SQLSTATE[HY000][2002]连接被拒绝


任何人都可以看一看,非常感谢

正如我在评论中提到的,我真的不知道为什么要为
MySQL
连接使用套接字。另外,在您的试用中,您总是缺少用户名和密码。因此,请尝试以下方法:

$pdo = new PDO('mysql:host=localhost;dbname='.DBNAME, 'user', 'password');

我遇到了相同的问题,并通过在主机中添加“unix_套接字”解决了它,如下所示:

$host = 'localhost;unix_socket=/tmp/mysql5.sock';
所以你会有

'mysql:host=' .$host .';dbname='.DB_NAME.';'

我不知道您为什么尝试使用
ini\u set()
设置套接字并使用它们。连接字符串中缺少用户名和密码。在连接字符串中尝试以下操作:
$pdo=newpdo('mysql:host=localhost;dbname='.dbname',user',password')您的服务器是否平衡?
/tmp/mysq5.sock
是否存在?您能否确认您可以使用其他工具连接到它?