php - 使用 ODBC + Access 时转义 SQL 查询中的输入数据

标签 php windows ms-access odbc

我已经尝试使用 odbc_prepare() + odbc_execute() 来更新 Access 文件中的记录,但我总是得到 SQL 状态 07001 关于不正确的列计数的错误消息(实际上,该消息是西类牙式的,没有多大意义):

<?php
$items = array();
$items[100] = 'Foo';
$items[200] = 'Bar';
$sql = 'UPDATE street
    SET name=?
    WHERE street_id=?';
$stmt = odbc_prepare($conection, $sql);
if( $stmt===FALSE ){
    die(odbc_errormsg());
}
foreach($items as $cod => $name){
    if( !odbc_execute($stmt, array($name, $cod)) ){
        die(odbc_errormsg());
    }
}

用户评论 odbc_execute manual page建议 Microsoft Access ODBC 驱动程序不支持参数化查询。但是,我还没有找到一个 odbc_* 函数来转义数据。

那么...我怎样才能转义输入数据?

最佳答案

通常在 MS Access 中,您通过将参数放在括号中来标识参数

$sql = 'UPDATE street
        SET name=[myname]
        WHERE street_id=[mystreet]';

这将如何与 php 融合,我不知道。

关于php - 使用 ODBC + Access 时转义 SQL 查询中的输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3996275/

相关文章:

windows - 类似于 Windows 的 bitbake 的构建工具

windows - Powershell - 如果不工作(Windows 服务检查)

c++ - 如何在将输出打印到cmd.exe后显示cmd提示符?

java - 与 MS Access 数据库的初始连接缓慢

vba - 将字段值复制到文本文件并另存为 .sql

php - where没有按预期工作

php - 当使用 PHP 查询我的 MySQL 数据库时,如何解决这个 undefined index 错误?

php - 如何跳过 PHPunit 中的测试?

php - 检查是否存在具有绝对和相对路径的文件

c# - 在 MS Access 文件上使用处置和 SuppressFinalize 后文件已在使用异常