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