SQLExpress adalah salah satu edisi Microsoft SQL Server (MSSQL) yang didistribusikan secara gratis untuk para hobiest dan tujuan non komersial. Edisi terbaru dari SQLExpress adalah versi 2008, yang dipaketkan dengan Visual Studio 2010. Sejak PHP5 dirilis, dukungan komunitas untuk database MS-SQL tidak berkembang, hingga akhirnya Microsoft merilis sqlsrv untuk menggantikan ekstensi mssql yang sudah mandeg dikembangkan. Selain ekstensi mssql (dengan ntdwlib/DB_LIB) di Windows, akses PHP ke MS-SQL di Linux bisa dilakukan dengan FreeTDS dan Sybase.
Untuk pembahasan kali ini, kita akan belajar bagaimana mengakses database MS-SQL dengan PHP.
Instalasi SQLExpress
Untuk menginstall SQLExpress, anda butuh installernya yang dapat diunduh disini:
- Edisi SQLExpress 2005: http://www.microsoft.com/download/en/details.aspx?id=21844
- Edisi SQLExpress 2008: http://www.microsoft.com/download/en/details.aspx?id=26729
Install dengan klik ganda file tersebut, saat instalasi pastikan metode autentifikasi yang digunakan adalah campuran antara Windows Authentication dan SQL Server Authentication serta isi password dengan benar.
Instalasi Extension Microsoft SQL Server untuk PHP
Microsoft telah menyediakan driver Microsoft SQL Server yang berfungsi sebagai extension library PHP. Silakan unduh installernya dari:
[sourcecode]<a href="http://www.microsoft.com/download/en/details.aspx?id=20098">http://www.microsoft.com/download/en/details.aspx?id=20098</a>[/sourcecode]
Klik ganda file tersebut untuk melakukan instalasi, pilih tempat file-file extension PHP berada (Contoh: C:\xampp\php\ext) dan klik OK.
Langkah penting selanjutnya adalah mengaktifkan extension ini. Buka file php.ini (contoh: C:\xampp\php\php.ini) dengan editor teks. Tambahkan baris berikut:
[sourcecode]extension=php_sqlsrv_52_ts_vc6.dll[/sourcecode]
atau
[sourcecode]extension=php_pdo_sqlsrv_52_ts_vc6.dll[/sourcecode]
Sesusaikan dengan versi PHP anda! Kemudian restart Webserver (Apache/XAMPP).
Koneksi PHP ke Microsoft SQLExpress
Ada dua metode autentifikasi yang diperbolehkan oleh SQLExpress, 1) berbasis akun Windows, dan 2) berbasis akun SQLExpress sendiri.
1. Koneksi PHP – MS-SQL dengan Windows Authentication
Contoh:
[sourcecode language=”php”]
<?php
/* Specify the server and connection string attributes. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
/* Connect using Windows Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Unable to connect.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Query SQL Server for the login of the user accessing the
database. */
$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
echo "Error in executing query.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Retrieve and display the results of the query. */
$row = sqlsrv_fetch_array($stmt);
echo "User login: ".$row[0]."</br>";
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
[/sourcecode]
Contoh diatas akan mengkoneksikan PHP ke MS-SQL dengan akun Windows pada basisdata AdventureWorks.
2. Koneksi PHP ke MS-SQL dengan SQL Server Authentication
Contoh:
[sourcecode language=”php”]
<?php
/* Specify the server and connection string attributes. */
$serverName = "(local)";
/* Get UID and PWD from application-specific files. */
$uid = "sa";
$pwd = "12345";
$connectionInfo = array( "UID"=>$uid,
"PWD"=>$pwd,
"Database"=>"AdventureWorks");
/* Connect using SQL Server Authentication. */
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
echo "Unable to connect.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Query SQL Server for the login of the user accessing the
database. */
$tsql = "SELECT CONVERT(varchar(32), SUSER_SNAME())";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
echo "Error in executing query.</br>";
die( print_r( sqlsrv_errors(), true));
}
/* Retrieve and display the results of the query. */
$row = sqlsrv_fetch_array($stmt);
echo "User login: ".$row[0]."</br>";
/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>
[/sourcecode]
Contoh diatas akan mengkoneksikan PHP dengan MS-SQL dengan akun sa dengan password 12345 untuk basisdata AdventureWorks.
Selamat mencoba!