Ich aktualisiere mit mysql über ODBC Filemaker Tabelle.
Wenn ein Feld enthält O'Reilly oder example'two erhalte ich diese Fehlermeldung:Aktualisieren von Filemaker Pro über ODBC mit MYSQL
Warnung: odbc_exec(): SQL-Fehler: [Filemaker] [Filemaker] FQL0001/(1:80):
Es gibt ein Fehler in der Syntax der Abfrage., SQL-Status 42000 in SQLExecDirect in C: \ fm_1.php in Zeile 49
und die Verwendung von addslashes() funktioniert nicht.
danke!
dies ist mein Code:
<?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);
?>
Ist MySQL tatsächlich relevant? Der gepostete Code scheint nur über ODBC mit der FMP-Datenbank zu arbeiten. –
Die richtige Lösung für dieses Problem ist die Verwendung von 'odbc_prepare()/odbc_execute()' anstelle von 'odbc_exec()' mit Variablen in Ihrer SQL-Anweisung. Sie sollten jedoch überprüfen, ob FMP vorbereitete Anweisungen unterstützt. https://stackoverflow.com/questions/5713837/correct-way-to-escape-input-data-before-passing-to-odbc –