я пытаюсь сделать запрос вставки с 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();
?>
Спасибо,
При возникновении проблем с запросом базы данных 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
Других решений пока нет …