невозможно вставить в базу данных 4D с помощью библиотеки php odbc

я пытаюсь сделать запрос вставки с php через ODBC к базе данных 4D, и я получаю следующую ошибку:

Ошибка SQL: сервер отклонил соединение: не удалось выполнить оператор. Состояние SQL 08004 в SQLExecDirect

Вот мой PHP-код:

<?php
$user = 'Super_Utilisateur';
$pass = '123';
$server = '127.0.0.1';
$driver = '4D v16 ODBC Driver 64-bit';
$sql='INSERT INTO patient(nom) VALUES ("patient100")';

$connection_string='DRIVER={'.$driver.'};SERVER='.$server.';UID='.$user.';PWD='.$pass;
$conn = odbc_connect( $connection_string , $user , $pass);
if ($conn) {

// connected
echo 'Connection established.' . PHP_EOL;

// working
$result=odbc_exec($conn,$sql);
//$Heure= odbc_result($result,'HeureT');
odbc_close($conn);

} else{

// could not connect
die("Connection could not be established.");
}
// probably not needed
odbc_close_all();
?>

Спасибо,

0

Решение

При возникновении проблем с запросом базы данных 4D из PHP (через ODBC или PDO) рекомендуется проверить запрос SQL от самого 4D, чтобы убедиться, что запрос действителен.

Во-первых, из целевой базы данных 4D вы можете проверить свой оператор SQL, как в следующем примере:

Begin SQL
INSERT INTO patient(nom) VALUES ("patient100")
End SQL

Затем вы обнаружите, поддерживается ли запрос механизмом 4D SQL.

Если оператор SQL работает из целевой базы данных 4D, вам следует выполнить тестирование из удаленного приложения 4D, используя SQL LOGIN.

Затем из удаленного 4D-приложения используйте «SQL Login» перед «Begin SQL», как в следующем примере:

SQL Login($4D_ODBC_DSN; $login; $password)
Begin SQL
INSERT INTO patient(nom) VALUES ("patient100")
End SQL

Примечание. Убедитесь, что вы используете правильный DSN для вашего сервера.

Это позволит обнаружить проблемы, связанные с аутентификацией или протоколом связи.


Источник: Технический совет: решение проблем с SQL-запросами при соединении с PDO_4D

Более пример кода

1

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

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