簡體   English   中英

在php中運行多個SQL Server查詢

[英]Run multiple SQL Server queries in php

我想在php中運行幾個SQL Server查詢,但他不想接受我的要求。 這是我的PHP腳本:

<?php
      error_reporting(0);

      $serverName = "SERVERNAME";
      $connectionInfo = array( "UID"=>"Username", "PWD"=>"password", "Database"=>"databasename", "MultipleActiveResultSets"=>true);

      $conn = sqlsrv_connect( $serverName, $connectionInfo);

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

     $sql = "INSERT INTO TABLE (column) VALUES (?)";
     $tsql = "INSERT INTO TABLE_NEW(column, column, column) Values (?, 'INSERT', 'WEBSERVER')";
     $params = array($_POST["addSomething"]);

       $stmt = sqlsrv_query( $conn, $sql, $params, $tsql, $params);
       if( $stmt == false ) {
         die(print_r( sqlsrv_errors(), true));
       }
       else
       {
           echo '<script language="javascript">';
           echo 'alert(Alert what Happend!)';  //not showing an alert box.
           echo '</script>';
       }
       sqlsrv_close($conn);
       ?>

我取出了私人數據,並用隨機名稱代替了它。 我很樂意提供幫助。

您不能將多個語句傳遞給sqlsrv_query() 在您的情況下,您有兩種選擇:

  • 生成一個復雜的T-SQL語句。 在這種情況下,占位符的數量必須與傳遞的參數的數量匹配。
  • 分別執行每個語句

復雜的聲明:

<?php
...
$sql = "
    INSERT INTO TABLE (column) VALUES (?); 
    INSERT INTO TABLE_NEW(column, column, column) Values (?, 'INSERT', 'WEBSERVER')
";
$params = array(
    $_POST["addSomething"],
    $_POST["addSomething"]
);
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt === false ) {
   # Your code here
} else {
   # Your code here
}
...
?>

筆記:

用於SQL Server的PHP驅動程序支持多個結果集。 如果使用一個復雜的語句,而一個或多個語句是SELECT語句,則需要調用sqlsrv_next_result()使下一個結果變為活動狀態(默認情況下第一個結果為活動狀態)。

暫無
暫無

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

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