Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MDB:PDO查询中的参数绑定错误_Php_Ms Access_Pdo_Odbc - Fatal编程技术网

Php MDB:PDO查询中的参数绑定错误

Php MDB:PDO查询中的参数绑定错误,php,ms-access,pdo,odbc,Php,Ms Access,Pdo,Odbc,我有这样的代码: $query=“按设置从appsettings顺序中选择*\u id DESC LIMIT 0,1”; $fetch=mysqli\u查询($conn,$query); $row=mysqli\u fetch\u数组($fetch,mysqli\u ASSOC); $dbName=$row['set_mdb']; 如果(!file_存在($dbName)){ die(“找不到数据库文件”); } $db=newpdo(“odbc:DRIVER={MDBTools};DBQ=“.

我有这样的代码:

$query=“按设置从appsettings顺序中选择*\u id DESC LIMIT 0,1”;
$fetch=mysqli\u查询($conn,$query);
$row=mysqli\u fetch\u数组($fetch,mysqli\u ASSOC);
$dbName=$row['set_mdb'];
如果(!file_存在($dbName)){
die(“找不到数据库文件”);
}
$db=newpdo(“odbc:DRIVER={MDBTools};DBQ=“.realpath($dbName));
$sql=“从部门名称不象:荣誉者的部门中选择*”;
$query=$db->prepare($sql);
$keyword=“%HONORER%”;
$colname='DEPTNAME';
$query->bindParam(':honorer',$keyword,PDO::PARAM_STR);
$query->execute();
$query->debugDumpParams();
foreach($query->fetchAll()作为$row){
回显“.$row['DEPTNAME']”;
}
如您所见,我有一个sql要运行。如果我只使用此sql:

$sql = "SELECT * FROM DEPARTMENTS";
它工作正常。但是当我尝试使用
where
orderby
时,它不会返回任何结果。我的DumpParam结果如下:

SQL: [58] SELECT * FROM DEPARTMENTS WHERE DEPTNAME NOT LIKE :honorer Params: 1 Key: Name: [8] :honorer paramno=0 name=[8] ":honorer" is_param=1 param_type=2

有人知道是什么导致了这个问题吗?顺便说一下,我是PDO的新手。我正在查看stackoverflow和php.net以了解如何使用PDO,因为我的数据库是.mdb(odbc),所以我需要使用这种方法。

为什么在同一个脚本中使用
mysqli_uu
PDO
?@riggsfully他使用两个不同的数据库(检查第二个数据库是
odbc
),但你是正确的,他可以使用同一个数据库,您是否真的在访问MySQL数据库?你的连接字符串似乎表明它在php myadmin上工作吗?@RiggsFolly因为我有两个数据库,一个是mysql,另一个是mdbWhy你在同一个脚本中使用
mysqli_
PDO
?@RiggsFolly他使用两个不同的数据库(检查第二个是
odbc
),但是你是对的,他可以使用同一个,或者
mysqli_*
或者
PDO
,但不是同时使用这两个,你真的在访问MySQL数据库吗?您的连接字符串似乎表明它在php myadmin上工作吗?@RiggsFolly,因为我有两个数据库,一个是mysql,另一个是mdb