0

我正在关注一个教授 PDO 的教程,但我被困在一个很早的时候。

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

当我运行 print_r($query); 没有输出,最初我认为问题在于脚本根本没有连接到 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_nameFROMsubscribers是正确的,因为当我将它插入 php MyAdmin 中的 mysql 选项卡时,它可以工作

4

2 回答 2

2

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

尝试这个:

$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['database'],$config['db']['user'], $config['db']['pass']);
于 2013-06-01T19:10:21.310 回答
-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);
于 2013-06-01T19:09:33.990 回答