2017-11-25 118 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 />"; 
}