Php 使用PDO写入4D

Php 使用PDO写入4D,php,pdo,4d-database,Php,Pdo,4d Database,我成功地使用PDO从4D读取数据,但没有向其写入数据 尝试将值插入数据库时,出现以下错误: 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_EXCEPT

我成功地使用PDO从4D读取数据,但没有向其写入数据

尝试将值插入数据库时,出现以下错误:

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端修改某些内容以授予我写权限。

提供的查询使用SQL保留字:

INSERT INTO order(dealer, customer) VALUES(:dealer, :customer)
此查询使用
ORDER
作为表名,但是
ORDER
是SQL保留字

如果您在4D Structure Editor的表格检查器中查看此表格,您将看到如下内容:

无法通过SQL访问此表,应重命名它

请参阅此技术提示:

订单
是一个保留术语(我想,我不熟悉“4D”)。如果这是一个mysql子系统,我想它应该是
插入到'order`
你忘了两点吗?-->数组(“:dealer”=>“Test dealer”,“:customer”=>“Test customer”)@YaatSuka PDO自动在绑定上添加缺少的冒号。我最终将表名更改为AppOrds以避免使用保留字,因此现在我有了
“插入AppOrds(dealer,customer)值(:dealer,:customer)”
。不幸的是,我仍然得到同样的错误。