2015-06-19 76 views
2

搜索其他文章我已經得出結論我需要使用Scope_Identity()返回在向我的MS SQL表中插入行時生成的主鍵的值。然而,對我來說不太清楚的是我需要返回該值的php。作爲一個新手,我從前輩那裏借用代碼來運行sql查詢,但是他們一直都是使用while循環從Array返回結果的情況。請告知正確的代碼。php使用Scope_identity返回id

$query = "INSERT INTO mytable (Title,Author) 
      VALUES('".sql_safe($Title)."', '"sql_safe($Author)."'); SELECT Scope_Identity() as myid;"; 

$result = odbc_exec($con1, $query); 

直到現在我還只有永遠需要使用

while($row = odbc_fetch_array($result)){ } 

但究竟是指的是身份識別碼的正確方法是什麼?

+0

? –

+0

我說這沒有關於sql連接方法的大量知識 - 我被告知我們的服務器與SQLSRV不兼容,這是首選的方法,直到我們得到一個新的服務器,這是建議的連接方法。它也是我的前任使用過的代碼。不幸的是,我的團隊中沒有很多php/sql的經驗,我不得不做出來。任何建議,爲什麼這不是一個好主意,另一個選擇是值得歡迎的。 –

回答

0

我這個掙扎了一會兒,最後我的解決方案涉及你爲什麼要使用ODBC回去mssql_query driver

$query ="  INSERT INTO powerview.DL_documentlist (Title,Liveversion,Author,Location,Locked,LockedbyID) 
       VALUES('".sql_safe($Title)."',1.0,'".sql_safe($Author)."','".sql_safe($Location)."','1',".$lockedbyID."); 
       SELECT SCOPE_IDENTITY() as id; 
       RETURN; 
      "; 

    $result = mssql_query($query);  
    $result = mssql_fetch_object($result); 

    $DocID = $result->id;