我正在尝试更新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/