1

我使用 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 方面进行更改以授予我写作许可。

4

1 回答 1

1

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

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

此查询ORDER用作表名,但ORDER它是一个 SQL 保留字。

如果您在 4D Structure Editor 的 Table Inspector 中查看此表,您会看到如下内容:
在此处输入图像描述

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

请参阅此技术提示: 技术提示:SQL 兼容字段名称指南

于 2017-09-28T00:53:00.830 回答