Microsoft SQL Serverに接続しパラメータつきクエリを実行する - PHP

PHPでMicrosoft SQL Serverに接続し、パラメータつきのクエリを実行します。

コード例

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
    $connectionInfo = array("UID" => 'user', "PWD" => 'pass', "Database" => 'dbname');
    $conn = sqlsrv_connect('192.168.0.1', $connectionInfo);
    if ($conn === false) {
      echo "Unable to connect.</br>";
    } else {
      $tsql = "SELECT id,page,pagetitle from Contents where id = ?";
      $params = array('123'); // retrived id = 123
 
      $stmt = sqlsrv_query($conn, $tsql, $params);
      if( $stmt === false )
      {
        echo "Error in statement execution.\n";
        die( print_r( sqlsrv_errors(), true));
      }

      while(sqlsrv_fetch( $stmt ) === true )
      {
        echo "id: ".sqlsrv_get_field( $stmt, 0 )."<br/>\n";
        echo "title: ".sqlsrv_get_field( $stmt, 1 )."<br/>\n";
        echo "page: ".sqlsrv_get_field( $stmt, 2 )."<br/>\n";
        echo "<br/>\n";
      }
      sqlsrv_free_stmt( $stmt);
      sqlsrv_close( $conn);
    }
    ?>
    </body>
</html>

解説

接続情報を準備し、SQL Serverに接続します。
  $connectionInfo = array("UID" => 'user', "PWD" => 'password', "Database" => 'dbName');
  $conn = sqlsrv_connect('db.internal.ipentec.com', $connectionInfo);

接続ができたならば、SQL文を準備します。? の部分がパラメータになります。
  $tsql = "SELECT id,page,pagetitle from Contents where id = ?";

パラメータを設定します。
  $params = array('123');

sqlsrv_query()関数を呼び出し、SQL文を実行します。sqlsrv_query()の第三引数にパラメータを渡します。
  $stmt = sqlsrv_query($conn, $tsql, $params);

SQL文が実行できた場合は戻り値としてtrueが戻ります。falseが戻ってきた場合はSQLの実行に失敗したとみなし、処理を抜けます。
  if( $stmt === false )

sqlsrv_fetch()関数を用いてレコードを取得して表示します。
  while(sqlsrv_fetch( $stmt ) === true )
  {
    echo "id: ".sqlsrv_get_field( $stmt, 0 )."<br/>\n";
    echo "title: ".sqlsrv_get_field( $stmt, 1 )."<br/>\n";
    echo "page: ".sqlsrv_get_field( $stmt, 2 )."<br/>\n";
    echo "<br/>\n";
  }

実行結果


著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
最終更新日: 2024-01-06
作成日: 2011-01-30
iPentec all rights reserverd.