PDO_4D生成'一般错误:1004无法执行语句'用于UPDATE查询但不是SELECT查询

问题描述:

我正在使用PHP7和PDO_4D连接到4D数据库。到目前为止,我只从数据库中读取数据,但没有写入数据库。PDO_4D生成'一般错误:1004无法执行语句'用于UPDATE查询但不是SELECT查询

带有SELECT语句的下面的代码块将无错执行。

$db = new PDO($dsn,$user,$pass); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 


$sql0 = "SELECT FirstName FROM User WHERE Surname = 'Mouse'"; 

try { 
    $stmt0 = $db->prepare($sql0); 
    $stmt0->execute(); 
} catch (PDOException $e0) { 
    echo "Problem with SELECT query:".$e0->getMessage(); 
} 
$results_array0 = $stmt0->fetchAll(); 

但是,我正在使用UPDATE查询的下面的代码块将产生一个错误。

$sql1 = "UPDATE User SET FirstName = 'Mickey' WHERE Surname = 'Mouse'"; 

try { 
    $stmt1 = $db->prepare($sql1); 
    $stmt1->execute(); 
} catch (PDOException $e1) { 
    echo "Problem with UPDATE query:".$e1->getMessage(); 
} 

错误:

SQLSTATE[HY000]: General error: 1004 Failed to execute statement. 

根据4D SQL documentation一般错误:1004对应的 '拒绝访问'。我怀疑是4D服务器限制了需要WRITE访问的SQL语句。

看看4D服务器,我只看到这个; 4D SQL Server Settings

为了执行UPDATE查询,我需要对4D SQL Server进行任何其他更改吗?或者我错过了什么?

是的,4D开发者需要授予您访问权限。这只是一行代码。

Greetings, Peter