2017-07-19 95 views
1

我正在使用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進行任何其他更改嗎?或者我錯過了什麼?

回答

1

是的,4D開發者需要授予您訪問權限。這只是一行代碼。

Greetings, Peter