我正在学习一个教授PDO的教程,但我仍然停留在非常早期的点上。
参考下面的代码,我已经诊断出了所选数据库的问题。
当我运行print_r($query)时,没有输出,最初我认为问题是脚本根本没有连接到MySql服务器,但后来我了解到,如果我更改了主机、用户或pass中的任何内容,就会收到一条错误消息,但无论我更改了什么与数据库相关的内容,都不会发生任何事情,也不会显示任何错误消息。
<?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';
?>如果有人能告诉我我做错了什么,我将不胜感激,并提前向您表示感谢。
顺便说一句,我确信从subscribers中选择mysql.mysql是正确的,因为当我将它插入到subscribers MyAdmin的mysql选项卡中时,它是有效的。
发布于 2013-06-02 03:10:21
我相信数据库名称的DSN参数是dbname,而不是database。
试试这个:
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['database'],$config['db']['user'], $config['db']['pass']);发布于 2013-06-02 03:09:34
在创建与数据库的连接后,您需要创建语句、设置查询、绑定值(可选)、执行查询并获取结果。在您的案例中:
$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);https://stackoverflow.com/questions/16876232
复制相似问题