MSSQL INSERT falha na consulta para uma tabela específica quando chamado com PHP

Preciso ler a data em que um pedido foi criado em nosso site. Quando essa solicitação é criada, as informações correspondentes a essa solicitação e sua meta-solicitação são inseridas nas tabelas DAI_REQ.META_REQUEST e DAI_REQ.META_REQUEST , respectivamente. Nós também temos um servidor dev e um servidor de implantação pública. O problema acontece apenas em nosso servidor de implantação por algum motivo …

Infelizmente, a consulta INSERT para inserir as informações da meta-solicitação na tabela DAI_REQ.META_REQUEST não funciona, mas a consulta SELECT eu faço logo depois faz (então, em meus olhos, isso remove problemas de conexão com o database / tabela propriamente dito ). Eu também uso a mesma syntax que a consulta INSERT eu faço no DAI_REQ.REQUEST , então eu não acho que seja um problema de syntax de consulta. Eu também tentei inserir manualmente como linha no sql-server e funciona bem. Finalmente, eu echo o valor de $this->userId que eu uso como parâmetro para a consulta INSERT para ver se ele continha o ID certo e o faz. Eu fiz o mesmo pelo valor de retorno de $this->db->query(...) , e NÃO retorna nada (apenas no nosso servidor de implantação).

Eu também sei que minha maneira de recuperar a última linha inserida em uma tabela não é perfeita, mas este não é o problema em questão aqui e será alterado mais tarde.

Aqui está o código real onde o problema acontece:

 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']; } 

O database que o servidor de implantação está usando não está configurado para aumentar automaticamente a coluna ID . No Microsoft SQL Server, para a coluna ID , você pode configurar Identity to Yes and Identity Increment para o número que deseja que a coluna ID incremente.