我正在学习教授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 subscribers
。first_name
FROM subscribers
是正确的,因为当我将它插入php MyAdmin中的mysql选项卡时可以正常工作
答案 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);