我使用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”的字符编码达成一致。 –