簡體   English   中英

sqlsrv_query無法按預期工作

[英]sqlsrv_query isn't working as expected

我目前正在接受職業培訓,我的任務是為會計工作創建一個網絡公式。 該服務器在Windows Server 2012 R2,PHP 7.2.1上運行IIS 6.2,最后我運行了MS PHP SQL Extension

除了我的代碼是stackowerflow拼湊而成的代碼之外,它還可以工作,只是無法弄清楚查詢中的錯誤。 在提交公式時,它說交易回滾了,我真的不知道為什么。 當查詢粘貼到MS SQL Server Management Studio中時,已成功執行,但不是以表格形式。

$serverName = "server\sqlexpress";
$connOptions = array( "Database"=>"123", "UID"=>"456", "PWD"=>"xxx");
$conn = sqlsrv_connect( $serverName, $connOptions );

if( $conn === false ) {
    die( print_r( sqlsrv_errors(), true ));
}
if ( sqlsrv_begin_transaction( $conn ) === false ) {
     die( print_r( sqlsrv_errors(), true ));
}

/* This is the query */
$sql1 = "INSERT INTO Person (Kundennummer, Vorname, Nachname, Strasse, Hausnummer, Etage, Email) VALUES (?, ?, ?, ?, ?, ?, ?)";
$params1 = array($kundennummer, $vorname, $nachname ,$strasse, $hausnummer, $etage, $email);
$query1 = sqlsrv_query( $conn, $sql1, $params1 );

/* This is where it rolls back the transaction */
if($query1) {
    sqlsrv_commit( $conn );
    echo "Transaction committed.<br />";
} 
else {
    sqlsrv_rollback( $conn );
    echo "Transaction rolled back.<br />";
}
sqlsrv_close($conn);

連接正在工作,因為如果我將$ sql1替換為

$sql1 = "SELECT 'Hello world'";

它說承諾。 有什么猜想嗎? 非常感謝,如果您發現我的代碼中發生了更多不良情況,請隨時糾正我。

突然我得到了答案。 當我添加echo(print_r(sqlsrv_errors(), true)); 在代碼中,它顯示“對該對象的插入權限被拒絕”,因此我向用戶添加了權限。 問題解決了,多虧了這個答案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM