2016-12-22 2 views
1

私は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); 
?> 
+1

ここでMySQLは実際に関連していますか?投稿されたコードは、ODBC経由でFMPデータベースを扱うように見えます。 –

+0

この問題を解決するには、SQL文の変数に 'odbc_exec()'の代わりに 'odbc_prepare()/ odbc_execute()'を使用してください。しかし、FMPが準備済みの文をサポートしているかどうかを確認する必要がありますhttps://stackoverflow.com/questions/5713837/correct-way-to-escape-in​​put-data-before-passing-to-odbc –

答えて

0

してみてください。 $ ID_MH;ここ

関連する問題