我在Windows 8,XAMPP 1.8.1,PHP 5.4.7和MySQL上使用Apache服务器。 我决定将我的代码转换为PDO。
检查我的 phpinfo()似乎启用了MySQL的PDO驱动程序,但我仍然继续收到“找不到驱动程序”错误。
以下是代码:
<?php
//connect to database
$config['db'] = array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'x'
);
$db = new PDO("
pdo_mysql:host= " .$config['db']['host']. ";
dbname= " .$config['db']['dbname']. ";
username= " .$config['db']['username'].";
password= " .$config['db']['password']."
");
?>
错误:
致命错误:未捕获的异常'PDOException',消息'找不到驱动程序'
有什么建议吗?
答案 0 :(得分:5)
我建议您参考manual page并从那里获取正确的 DSN字符串示例
答案 1 :(得分:1)
如果您将DSN前缀从pdo_mysql
更改为mysql
,会发生什么?
答案 2 :(得分:1)
正如手册所说link
您应该以这种方式格式化您的dsn:
DRIVER:host=YOURHOST;dbname=YOURDB
同样要创建实例,您应该这样做:$db = new PDO($dsn, $username, $password)
另外我忘了说(正如其他用户指出的那样)你的DRIVER是“mysql”而不是pdo_mysql
答案 3 :(得分:0)
最后,代码存在2个问题:
<强> 1。 pdo_mysql - &gt; MySQL的强>
<强> 2。用户名和密码应作为变量传递,而不是作为字符串传递。
正确的代码是:
$config['db'] = array(
'host' => 'localhost',
'username' => 'root',
'password' => '',
'dbname' => 'x'
);
$db = new PDO (
"mysql:host=".$config['db']['host'].";dbname=".$config['db']['dbname']."",
$config['db']['username'],
$config['db']['password']
);