Arhn - архитектура программирования

Обновите Filemaker Pro через ODBC с помощью MYSQL

Я обновляюсь с помощью mysql через таблицу ODBC Filemaker.
Когда поле содержит oreilly или example'two, я получаю это сообщение об ошибке:

Предупреждение: odbc_exec (): Ошибка SQL: [FileMaker] [FileMaker] FQL0001 / (1:80):
Ошибка в синтаксисе запроса. Состояние SQL 42000 в SQLExecDirect в C: \ fm_1.php в строке 49

и использование addlashes () не работает.

Спасибо!

это мой код:

<?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);
?>
22.12.2016

  • Действительно ли MySQL здесь актуален? Опубликованный код работает только с базой данных FMP через ODBC. 22.12.2016
  • Правильное решение этой проблемы - использовать odbc_prepare()/odbc_execute() вместо odbc_exec() с переменными в вашем операторе SQL. Но вы должны проверить, поддерживает ли FMP подготовленные операторы. stackoverflow.com/questions/5713837/ 22.12.2016

Ответы:


1

Попробуйте выполнить экранирование вместо использования дополнительных слэшей:

"ОБНОВИТЬ myTable SET MH_Name = \" $ MH_Name \ "WHERE ID_MH =". $ ID_MH;

23.12.2016

2

вот решение:

$query = 'UPDATE myTable SET MH_Name=? WHERE ID_MH=?';
$stmt = odbc_prepare ($conn, $query);
$success = odbc_execute($stmt, array($MH_Name, $ID_MH));  

источник: https://www.skeletonkey.com/FileMaker_11_ODBC_Drivers/

Благодарность!

27.12.2016
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..