我使用PDO來連接MS-Access數據庫在那裏我有一欄叫Instalación
:選擇列名和特殊字符(O)
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; Dbq=my/path/to/file.mdb");
$str="SELECT * FROM table";
$qr=$db->query($str);
if($qr != false){
while($result=$qr->fetch(PDO::FETCH_ASSOC)){
print_r($result);
}
}
else{
print_r($db->errorInfo());
}
我得到了這樣的事情:[Instalaci�n] => DHg
至極我使用函數utf8_encode解決( ),所以它成了([Instalación] => DHg
)
我的問題是這樣的: 當我改變串查詢到select Instalación from table
,該$db->query($str)
回報false
我通過改變$str
試了幾件事情,這裏有關聯的錯誤:
錯誤#1
我做了什麼
select Instalación from table
或select [Instalación] from table
錯誤我:
[0] => 07002
[1] => -3010
[2] => [Microsoft][Controlador ODBC Microsoft Access] Pocos par�metros. Se esperaba 1. (SQLExecute[-3010] at ext\pdo_odbc\odbc_stmt.c:254)
[3] => 07002
錯誤#2
我所做的:
$quoted=$db->quote('Instalación');
$str="select $quoted from table";
錯誤我:
[0] => 42000
[1] => 0
[2] => [Microsoft][Controlador ODBC Microsoft Access] La instrucci�n SELECT incluye una palabra reservada, le falta un argumento o est� mal escrito, o bien los signos de puntuaci�n no son correctos. (SQLPrepare[0] at ext\pdo_odbc\odbc_driver.c:206)
[3] =>
錯誤#3
我所做的:
SELECT \'Instalación\' from caudal
錯誤我:
[0] => 42000
[1] => 0
[2] => [Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis (falta operador) en la expresi�n de consulta '\'Instalación\''. (SQLPrepare[0] at ext\pdo_odbc\odbc_driver.c:206)
[3] =>
正如你可以看到我跑出去的想法去面對的問題。你能幫我解決嗎? 我也覺得奇怪顯示錯誤,當我得到了渲染問題...
你可以試着改變你的PHP源文件的編碼爲'Windows的1252'(例如,在記事本「在ANSI編碼」 ++),使PDO_ODBC和Access ODBC驅動程序可以就「Instalación」的字符編碼達成一致。 –