[英]MSSQL INSERT query failing for a specific table when called with PHP
我需要閱讀從我們的網站創建請求的日期。 創建該請求時,與該請求及其元請求相對應的信息分別插入DAI_REQ.REQUEST
和DAI_REQ.META_REQUEST
表中。 我們也有一個開發服務器和一個公共部署服務器。 由於某種原因,該問題僅發生在我們的部署服務器上。
不幸的是,在DAI_REQ.META_REQUEST
表中插入元請求信息的INSERT
查詢不起作用,但是我DAI_REQ.META_REQUEST
的SELECT
查詢也可以工作(因此,在我看來,這消除了數據庫/表本身的任何連接問題)。 我還使用與在DAI_REQ.REQUEST
上INSERT
查詢相同的語法,因此我不認為這是查詢語法問題。 我也嘗試在sql-server中手動插入為行,並且工作正常。 最后,我echo
了$this->userId
的值,該值用作INSERT
查詢的參數,以查看它是否包含正確的ID,並且確實如此。 我對$this->db->query(...)
的返回值執行了相同的操作,並且它不返回任何內容(僅在我們的部署服務器上)。
我也知道,我檢索表中最后插入的行的方法並不完美,但這不是當前的問題,以后會更改。
這是發生問題的實際代碼:
public function dbInsert(){
// The actual problematic query
$this->db->query("INSERT INTO DAI_REQ.META_REQUEST ".
"(DATE_RECU, DATE_TERMINEE, USER_ID, STATUS) ".
"VALUES(GETDATE(), '', ?, 'R');", array($this->userId));
// This works fine though
$mr_select = $this->db->query("SELECT TOP 1 ID FROM DAI_REQ.META_REQUEST WHERE USER_ID = ? ORDER BY ID DESC;",
array($this->userId));
$mr_result = $mr_select->result_array();
$mr_id = $mr_result[0]['ID'];
$sim = 'N/A';
if(isset($this->recurrenceType))
$sim = 'Recurrent';
$this->db->query("INSERT INTO DAI_REQ.REQUEST ".
"(USER_ID, ASSIGNED_DATE, REQUEST_END_DATE, MODEL, EXPERIMENT, VARIABLE, START_DATE, END_DATE, ".
"LON_FROM, LAT_FROM, LON_TO, LAT_TO, RESOLUTION, FORMAT, SIMULATION, STATUS, ".
"CANCELLED_YN, PROJECT, MR_ID, URL_ORIGIN, DATE_EMAIL) ".
"VALUES(?, GETDATE(), '', ?, 'N/A', 'N/A', ?, ?, ?, ?, ?, ?, ?, ?, ?, 'R', 0, 'N/A', ?, ?, ?);",
array($this->userId, $this->model, $this->startDate, $this->endDate,
$this->lonFrom, $this->latFrom, $this->lonTo, $this->latTo,
$this->resolution, $this->format, $sim, $mr_id, $this->url_origin, $this->date_email));
$r_select = $this->db->query("SELECT TOP 1 ID FROM DAI_REQ.REQUEST WHERE USER_ID = ? ORDER BY ID DESC;",
array($this->userId));
$r_result = $r_select->result_array();
$this->id = $r_result[0]['ID'];
}
部署服務器使用的數據庫未設置為自動遞增ID
列。 在Microsoft SQL Server中,對於ID
列,可以將Identity
設置為Yes
並將Identity Increment
為希望ID
列遞增的任何數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.