【发布时间】:2026-01-13 11:05:01
【问题描述】:
我正在尝试对 MS-Access 数据库执行简单的选择查询。 当然我想防止 SQL 注入,所以我想使用带参数的准备好的语句
$conn = odbc_connect("DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=/path/to/mdb/file.mdb", "ADODB.Connection", "password", SQL_CUR_USE_ODBC);
$res = odbc_prepare($conn, "SELECT * FROM customers WHERE holdingnumber = ?");
odbc_execute($res, array( 20000 ));
$row = odbc_fetch_array($res);
print_r($row);
当我尝试这样做时,我得到一个空警告:
Warning: odbc_execute(): in D:\xampp\htdocs\ZEOnline\test.php on line 5
但是当我在没有参数的情况下执行此操作时(将“?”替换为 20000 并从 odbc_execute 中删除数组),它可以工作。
有谁知道为什么这不起作用,或者有没有其他方法可以正确地转义 odbc 的字符串?
PHP版本是5.4.4,MS Access Driver应该是最新版本
【问题讨论】: