使用PDO写入4D

时间:2017-09-27 21:32:55

标签: 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_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 个答案:

答案 0 :(得分:1)

提供的查询使用SQL RESERVED WORD:

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

此查询使用ORDER作为表名,但ORDER是SQL保留字。

如果您在4D Structure Editor的表检查器中查看此表,您会看到如下内容:
enter image description here

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

请参阅此技术提示: Tech Tip: Guidelines for SQL compatible field names