我使用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方面更改某些内容以给我写入权限。
答案 0 :(得分:1)
提供的查询使用SQL RESERVED WORD:
INSERT INTO order(dealer, customer) VALUES(:dealer, :customer)
此查询使用ORDER
作为表名,但ORDER
是SQL保留字。
如果您在4D Structure Editor的表检查器中查看此表,您会看到如下内容:
您无法通过SQL访问此表,您应该重命名它。
请参阅此技术提示: Tech Tip: Guidelines for SQL compatible field names