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" => 'password', "Database" => 'dbName');
    $conn = sqlsrv_connect('db.internal.ipentec.com', $connectionInfo);
    if ($conn === false) {
      echo "Unable to connect.</br>";
    } else {
      $tsql = "SELECT top 5 id,page,pagetitle from Contents";
      $stmt = sqlsrv_query($conn, $tsql);
      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 top 5 id,page,pagetitle from Contents";
 $stmt = sqlsrv_query($conn, $tsql);

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

sqlsrv_fetch()関数を用いてレコードを取得します。sqlsrv_fetch()関数を呼び出すと結果セットからレコードをフェッチして内部ポインタを一つ進めます。フィールドの値はsqlsrv_get_field()関数により取得します。sqlsrv_get_field()関数の第二引数で結果レコードの列番号を指定します。(上記の場合は0=id, 1=title, 2=pagetitle 列となります。)
内部ポインタが結果セットの末尾まで辿った場合(もう結果がない場合)はsqlsrv_fetch()関数はfalseを返します。
  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.