我无法使用PDO访问数据库

时间:2013-06-01 19:03:51

标签: php mysql pdo

我正在学习教授PDO的教程,但我很早就陷入困境。

参考下面的代码,我已将问题诊断为所选的数据库。

当我运行print_r($ query)时;没有输出和initallally我认为问题是脚本根本没有连接到MySql服务器,但后来我知道如果我在主机,用户或传递中更改任何内容我收到错误消息,但无论我改变什么与数据库相关的任何事情都没有发生,也没有显示错误消息。

<?php
error_reporting(E_ALL);

$config['db'] = array(
    'host'      => 'xxxx',
    'user'      => 'xxxx',
    'pass'      => 'xxxx',
    'database'  => 'xxxx'
);

$db = new PDO('mysql:host=' . $config['db']['host'] . ';database=' . $config['db']['database'],$config['db']['user'], $config['db']['pass']);
$query = $db->query("SELECT `subscribers`.`first_name` FROM `subscribers`");

print_r($query);


echo 'Anything';

?>

如果有人能告诉我我做错了什么,我会非常感激,并且我提前感谢你。

顺便说一句,我确定SELECT subscribersfirst_name FROM subscribers是正确的,因为当我将它插入php MyAdmin中的mysql选项卡时可以正常工作

2 个答案:

答案 0 :(得分:2)

我认为数据库名称的DSN参数名为dbname,而不是database

试试这个:

$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['database'],$config['db']['user'], $config['db']['pass']);

答案 1 :(得分:-1)

创建与数据库的连接后,您需要创建语句,设置查询,绑定值(可选),执行查询并获取结果。在你的情况下:

$db = new PDO('mysql:host=' . $config['db']['host'] . ';database=' . $config['db']      ['database'],$config['db']['user'], $config['db']['pass']);
$query = $db->prepare("SELECT `subscribers`.`first_name` FROM `subscribers`");
$query->execute();
$result = $query->fetchAll();
var_dump($result);