私はODBC Filemaker Tableを使ってmysqlを更新しています。
フィールドが、私はこのエラーメッセージを取得オライリーまたはexample'two含まれていますMySQLでFilemaker ProをODBC経由で更新
警告:odbc_exec():SQLエラー:[ファイルメーカー] [ファイルメーカー] FQL0001 /(1:80):
がありますがクエリの構文に誤りがあります。SQLExecDirectのSQLステート42000(C:\ fm_1.phpの49行目)
addslashes()を使用すると動作しません。
ありがとうございました!
これは私のコードです:
"UPDATE mytableはSET MH_Name = \" "ID_MH =" $ MH_Name \:代わりに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);
?>
ここでMySQLは実際に関連していますか?投稿されたコードは、ODBC経由でFMPデータベースを扱うように見えます。 –
この問題を解決するには、SQL文の変数に 'odbc_exec()'の代わりに 'odbc_prepare()/ odbc_execute()'を使用してください。しかし、FMPが準備済みの文をサポートしているかどうかを確認する必要がありますhttps://stackoverflow.com/questions/5713837/correct-way-to-escape-input-data-before-passing-to-odbc –