首先,我只是将所有PHP文件都切换为使用PDO,所以很高兴.但是我对PHP的经验不是很丰富,更不用说PDO了,所以我遇到了问题.我在SQL数据库中运行以下查询,它返回正确的值.
SELECT *
FROM table_gon_0621_516
WHERE id = '1'
现在我像这样在PHP中使用它
require_once ("../Android/connect_db.php");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$table_name = 'table_gon_0621_516';
try {
$names = $db->query("
SELECT *
FROM `".$table_name."`
WHERE `id` = '1'
");
$rows = $names->fetchAll(PDO::FETCH_ASSOC);
$col_map = array_flip($rows);
echo '
', print_r($rows, true), '';
} catch (PDOException $e){
die($e->getMessage());
}
我在浏览器中收到此错误
SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected
这是我的连接代码
$config['db'] = array (
'host' => 'localhost',
'username' => 'admin',
'password' => 'xxxx', //checked and correct
'dbname' => 'xxxx_beta' //checked and correct
);
$db = new PDO(
'mysql:host = '.$config['db']['host'].';
dbname = '.$config['db']['dbname'],
$config['db']['username'],
$config['db']['password']
);
?>
此页面正确加载,没有错误,我连接成功.我究竟做错了什么?
编辑
我变了
$data = $names->fetchAll(PDO::FETCH_ASSOC);
至
$data = $names->fetch(PDO::FETCH_ASSOC);
而且我仍然遇到同样的问题.我还更新了上面的代码以显示此更改
第二次编辑
我在上面更改了代码,现在收到一条新消息,我假设我没有连接?