Запись в 4D с использованием PDO

Я успешно читаю из 4D, используя PDO, но не пишу в него.

Когда я пытаюсь вставить значения в базу данных, я получаю следующую ошибку:

SQLSTATE [HY000]: общая ошибка: 1248 Не удалось выполнить инструкцию.

Вот мой код:

<?php
$dsn = 'dsn-info';
$user = 'user-info';
$pswd = 'password';

$db = new PDO($dsn, $user, $pswd);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // Display PDO errors

$statement = $db->prepare("INSERT INTO order(dealer, customer) VALUES(:dealer, :customer)");

$statement->execute(array(
"dealer" => "Test Dealer",
"customer" => "Test Customer"));
?>

Просто пытаюсь выяснить, есть ли что-то не так с моим утверждением INSERT или нужно что-то изменить на 4D стороне, чтобы дать мне разрешение на запись.

1

Решение

В указанном запросе используется SQL RESERVED WORD:

INSERT INTO order(dealer, customer) VALUES(:dealer, :customer)

Этот запрос использует ORDER как имя таблицы, однако ORDER это зарезервированное слово SQL

Если вы посмотрите на эту таблицу в Инспекторе таблиц 4D Structure Editor, вы увидите что-то вроде этого:
введите описание изображения здесь

Вы не можете получить доступ к этой таблице через SQL, вы должны переименовать ее.

Пожалуйста, смотрите этот технический совет:
Технический совет: рекомендации для имен полей, совместимых с SQL

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]