Microsoft SQL Serverに接続しパラメータつきクエリを実行する
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の積極的な活用にも取り組み中。
とっても恥ずかしがり。