Php 使用MYSQL通过ODBC更新Filemaker Pro

Php 使用MYSQL通过ODBC更新Filemaker Pro,php,mysql,filemaker,Php,Mysql,Filemaker,我正在使用mysql over ODBC Filemaker表进行更新。 当字段包含o'reilly或示例'two时,我会收到以下错误消息: 警告:odbc_exec():SQL错误:[FileMaker][FileMaker]FQL0001/(1:80): 在C:\fm_1.php的第49行的SQLExecDirect中,查询的语法中有一个错误 并且使用addslashes()不起作用 谢谢大家! 这是我的代码: <?php $conn = odbc_connect("DSN=Serve

我正在使用mysql over ODBC Filemaker表进行更新。
当字段包含o'reilly或示例'two时,我会收到以下错误消息:

警告:odbc_exec():SQL错误:[FileMaker][FileMaker]FQL0001/(1:80):
在C:\fm_1.php的第49行的SQLExecDirect中,查询的语法中有一个错误

并且使用addslashes()不起作用

谢谢大家!

这是我的代码:

<?php
$conn = odbc_connect("DSN=Server;Database=TEST;UID=odbc;PWD=1234", "odbc", "1234");
if ($conn)
    echo "\nConnection established.";
else
    die("\nConnection could not be established.");

$result = odbc_exec($conn, "SELECT ID_MH, MH_Name FROM myTable WHERE MH_Name LIKE '%EXAMPLE'");
while ($row = odbc_fetch_array($result)) {

    $ID_MH = $row["ID_MH"];
    $MH_Name = $row["MH_Name"]; 

    // do something

    $MH_Name = addslashes($MH_Name);
    $update = "UPDATE myTable SET MH_Name='$MH_Name' WHERE ID_MH=" . $ID_MH;    
    $data_update = odbc_exec($conn, $update);

} 
odbc_close($conn);
?>

尝试转义,而不是使用addslashes:


“UPDATE myTable SET MH_Name=\”$MH_Name\“其中ID_MH=”$ID_MH

尝试转义,而不是使用addslashes:


“UPDATE myTable SET MH_Name=\”$MH_Name\“其中ID_MH=”$ID_MH

以下是解决方案:

$query = 'UPDATE myTable SET MH_Name=? WHERE ID_MH=?';
$stmt = odbc_prepare ($conn, $query);
$success = odbc_execute($stmt, array($MH_Name, $ID_MH));  
资料来源:


谢谢

以下是解决方案:

$query = 'UPDATE myTable SET MH_Name=? WHERE ID_MH=?';
$stmt = odbc_prepare ($conn, $query);
$success = odbc_execute($stmt, array($MH_Name, $ID_MH));  
资料来源:


谢谢

MySQL在这里真的相关吗?发布的代码似乎只通过ODBC处理FMP数据库。解决此问题的正确方法是使用
ODBC\u prepare()/ODBC\u execute()
,而不是在SQL语句中使用变量
ODBC\u exec()
。但您应该验证FMP是否支持准备好的语句。MySQL在这里真的相关吗?发布的代码似乎只通过ODBC处理FMP数据库。解决此问题的正确方法是使用
ODBC\u prepare()/ODBC\u execute()
,而不是在SQL语句中使用变量
ODBC\u exec()
。但您应该验证FMP是否支持准备好的语句。