2015-05-30 211 views
0

我將id設置爲標識主鍵,但此代碼返回null,我不想使用@@IDENTITY爲什麼SCOPE_IDENTITY()返回空值?

$stmt = $db->prepare("INSERT INTO `question_field`(`q_field_id`, `q_field`) VALUES ('','software');SELECT SCOPE_IDENTITY() as last_id"); 
$stmt->execute(); 
$row=$stmt->fetch(); 
echo $row['last_id']; 

什麼問題?如果該功能是任何插入語句插入標識列發生的範圍援引

回答

0

我假設由@@IDENTITYSCOPE_IDENTITY()你正在訪問一個SQL 。Server數據庫

在這種情況下,需要注意:

  • 轉義SQL Server中通過[symbol],不能做機智h MySql的反引號。
  • 當插入到表中與IDENTITY柱,不指定任何值在所有的標識列

即,如果IDENTITY列是q_field_id,則所有所需要的是:

INSERT INTO [question_field]([q_field]) 
VALUES ('software'); 
SELECT SCOPE_IDENTITY() as last_id; 
+0

即原始查詢將返回一個錯誤,因爲您正試圖將''插入到'身份'列中。 – StuartLC

0

SCOPE_IDENTITY()函數將返回空值。」

相關問題