Belajar PHP: PHP dan Microsoft SQLExpress (MSSQL)

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:

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:

http://www.microsoft.com/download/en/details.aspx?id=20098

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:

extension=php_sqlsrv_52_ts_vc6.dll

atau

extension=php_pdo_sqlsrv_52_ts_vc6.dll

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:


<?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);
?>

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:

<?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);
?>

Contoh diatas akan mengkoneksikan PHP dengan MS-SQL dengan akun sa dengan password 12345 untuk basisdata AdventureWorks.

Selamat mencoba!

Incoming search terms:

  • steve

    mantab tutorialnya om. saya kebetulan juga sedang belajar koneksi ke MS-SQL dengan PHP, untuk akses database lokal(komputer sendiri) udah sukses, tapi klo buat akses database lain (remote) ada error Login failed for user ‘NT AUTHORITY\\ANONYMOUS LOGON’, itu yg kurang di kode phpnya atau MS-SQL tujuan ya? mohon infonya ya..trims

    • admin

      sepertinya koneksi ke database remote yang bermasalah, jika anda berkenan mengaksesnya dg windows authentication buat user juga disana. NT AUTHORITY\\ANONYMOUS LOGON setahu saya berarti anda tidak menggunakan user yg cocok di database remote itu, atau database remote itu belum dikonfigurasi supaya dapat diakses secara remote. salam.

      • steve

        oww berarti harus konfigurasi MS-SQL tujuan nya ya. oke om saya coba dulu setting di MS-SQL nya,dengan user yang cocok.. ini user window ya om patokannya?terimakasih responnya, cepat juga di respon.

        • admin

          ada dua cara koneksi user, bisa pake Windows-based (user Windows) atau pake user MS-SQL sendiri.

  • Ricky Adithya

    gan file php nya disimpan dimana?

    • Panah Biru

      naruhnya tergantung kebutuhan anda mas, bisa ditaruh di public_html/htdocs xampp/wampp supaya bisa diakses dari browser.

  • Ricky Adithya

    knpa punya saya kenapa tidak bisa konek?
    di browser y tertulis
    [Microsoft][SQL Server Native Client 10.0]Named Pipes Provider: Could not open a connection to SQL Server
    padhal pipes provider ny sudah sya enable