在PHP中创建与PDO的连接时出错 [英] Error on creating connection to PDO in PHP
问题描述
今天,我删除并重新安装了Lampp的最新版本,以便移至php 5.30,突然之间,一个非常简单的应用程序无法连接到mysql数据库.我正在使用PDO进行连接,并收到以下错误:
Today, I removed and reinstalled the latest version of lampp in order to move to php 5.30, and suddenly a very simple app is failing to connect to the mysql database. I'm using PDO to connect, and receiving the following error:
Warning: PDO::__construct() [pdo.--construct]: [2002] Invalid argument (trying to connect
via unix://) in /home/raistlin/www/todoapp/home.php on line 9
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002]
Invalid argument' in /home/raistlin/www/todoapp/home.php:9 Stack trace: #0
/home/raistlin/www/todoapp/home.php(9): PDO->__construct('mysql:host=loca...', 'USER',
'PASSWORD') #1 {main} thrown in /home/raistlin/www/todoapp/home.php on line 9
为了调试它,我暂时没有抓住错误.
I am not catching the error at the moment, for the sake of debugging it.
以下代码足以在我的系统上复制该问题:
The following code is enough to replicate the issue on my system:
<?php
$DBACCESS = array(
"connstring"=>"mysql:host=localhost;dbname=todoapp",
"host"=>"localhost",
"user"=>"user",
"password"=>"password",
"todoapp"=>"todoapp"
);
echo implode('<br \>',$DBACCESS);
$dbh = new PDO($DBACCESS['connstring'],$DBACCESS['user'],$DBACCESS['password']);
$dbh = null;
?>
在网上看,我发现另外一两个人有同样的问题,但是他们都没有收到回应,更不用说工作了.有人知道发生了什么吗?我在配置中错过了什么吗?我需要做些什么来解决它?
Looking online, I've found one or two other people with the same issue, but none of them have received a response, much less a working one. Does anyone know what is happening? Is there something I missed in the configuration? What do I need to do to fix it?
推荐答案
通常意味着您需要指定TCP/IP(1),或告诉MySQL Unix套接字在哪里(2):
Usually means that you need to specify TCP/IP (1), or tell MySQL where your Unix socket is (2):
- "mysql:host = 127.0.0.1"或"mysql:host = localhost; port = 3306"
- "mysql:unix_socket =/var/run/mysqld/mysqld.sock"
这篇关于在PHP中创建与PDO的连接时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!