2017-11-25 117 views
0

當我嘗試在我的數據庫中插入一個值時,它返回我沒有錯誤,但它沒有插入任何東西,在sql server上它完美地工作。用sqlsrv插入查詢

<?php 
$serverName = "12.15.88.81"; 
$connectionInfo = array("Database"=>"Dcs", "UID"=>"sa", "PWD"=>"123456"); 
$conn = sqlsrv_connect($serverName, $connectionInfo); 
if($conn === false) { 
    die(print_r(sqlsrv_errors(), true)); 

} 
if (sqlsrv_begin_transaction($conn) === false) { 
    die(print_r(sqlsrv_errors(), true)); 
} 
$sql = "INSERT INTO [dbo].[Dcs_name] (ID,NAME) VALUES (?,?)"; 
$params = array('11','Ani'); 
$stmt = sqlsrv_query($conn, $sql, $params); 



$stmt = sqlsrv_query($conn, $sql, $params); 

if($stmt === false) { 
    if(($errors = sqlsrv_errors()) != null) { 
     foreach($errors as $error) { 
      echo "SQLSTATE: ".$error[ 'SQLSTATE']."<br />"; 
      echo "code: ".$error[ 'code']."<br />"; 
      echo "message: ".$error[ 'message']."<br />"; 
     } 
    } 
} 

?> 
+0

我沒有使用sql-server函數,但它看起來像你正在開始一個事務,你需要提交這個更改來應用。 http://php.net/manual/en/function.sqlsrv-commit.php另外,不要執行查詢兩次,我會有'id'自動增量。 – chris85

+0

檢查此:最佳方式找出 - https://stackoverflow.com/questions/42648/best-way-to-get-identity-of-inserted-row?rq=1 – vbRocks

回答

0

你是對的我添加了提交和它的作品非常感謝你。

if($stmt) { 
    sqlsrv_commit($conn); 
    echo "Transaction committed.<br />"; 
} else { 
    sqlsrv_rollback($conn); 
    echo "Transaction rolled back.<br />"; 
}