首先我剛換我所有PHP
文件中使用PDO
的連接到MySQL,所以這是幸福的。不過我對PHP
並不是很有經驗,更不用說PDO
,所以我遇到了問題。我在我的SQL
數據庫中運行以下查詢,並返回正確的值。不能正常使用PDO
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 '<pre>', print_r($rows, true), '</pre>';
} catch (PDOException $e){
die($e->getMessage());
}
,我在我的瀏覽器
SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected
得到這個錯誤,這是我的連接代碼
<?php
$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);
,我仍然有同樣的問題。我也更新上面的代碼顯示這種變化
第二編輯
我改變了上面,現在我的代碼收到新的消息,我假設我沒有連接?
是完整的錯誤報告和顯示屏上嗎? – 2013-06-23 21:43:36
由於您正在將''table_name''粘貼到查詢中,因此您可以用''FROM'$ table_name''替換''FROM'「。$ table_name。」'''。 – mzedeler
@mzedeler很好,我不知道,我會試試看。謝謝! –