PDO_4D Produces 'General Error: 1004 Failed to execute statement' for UPDATE query but not SELECT queries
PDO_4D Produces 'General Error: 1004 Failed to execute statement' for UPDATE query but not SELECT queries
我正在使用 PHP7 和 PDO_4D 连接到 4D 数据库。到目前为止,我只从数据库中读取并没有写入它。
下面带有 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();
但是,下面我使用更新查询的代码块会产生错误。
$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 对应于 'access denied'。我怀疑 4D 服务器正在限制需要 WRITE 访问权限的 SQL 语句。
看4D服务器,我只看到了这个;
4D SQL Server Settings
是否需要对 4D SQL 服务器进行任何其他更改才能执行 UPDATE 查询?还是我遗漏了什么?
是的,4D 开发人员需要授予您访问权限。仅需 1 行代码。
您好,
彼得
我正在使用 PHP7 和 PDO_4D 连接到 4D 数据库。到目前为止,我只从数据库中读取并没有写入它。
下面带有 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();
但是,下面我使用更新查询的代码块会产生错误。
$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 对应于 'access denied'。我怀疑 4D 服务器正在限制需要 WRITE 访问权限的 SQL 语句。
看4D服务器,我只看到了这个; 4D SQL Server Settings
是否需要对 4D SQL 服务器进行任何其他更改才能执行 UPDATE 查询?还是我遗漏了什么?
是的,4D 开发人员需要授予您访问权限。仅需 1 行代码。
您好, 彼得