我正在尝试更新FileMaker上的表,但出现此错误:
警告:odbc_exec():SQL错误:[FileMaker] [FileMaker] FQL0001 /(1:90):查询的语法中有错误。,SQLExecDirect中C的SQL状态42000:...

这是我的代码:

$conn = odbc_connect("DSN=Server;Database=FM_File;UID=odbc;PWD=1234", "odbc", "1234");
$result = odbc_exec($conn, "SELECT ID_FM, Street FROM Table WHERE Street LIKE '%AVENUE%'");

while ($row = odbc_fetch_array($result)) {

    $ID_FM = $row["ID_FM"];
    $Street = $row["Street"];

    $Street_neu = str_replace("AVENUE", "AV", $Street);

    $update = "UPDATE Table SET Street='$Street_neu' WHERE ID_FM=" . $ID_FM;
    $data_update = odbc_exec($conn, $update);
}
odbc_close($conn);


谢谢!

最佳答案

由于错误状态,您语法不正确。我不喜欢字符串值中的$,但这可能还可以。您不能在SQL语句中使用名为Table的表-它是保留字。我建议更改名称。如果不能,请尝试转义:

"SELECT ID_FM, Street FROM \"Table\" WHERE Street LIKE '%AVENUE%'"




"UPDATE \"Table\" SET Street='$Street_neu' WHERE ID_FM=" . $ID_FM;


FileMaker还对保留字使用其自己的符号-$ {reserveword}。我认为它不适用于它的SQL版本,但是如果另一个失败,您可以尝试

关于php - 通过odbc更新FileMaker表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40039529/

10-12 00:14