Categories
Web

XAMPP add PDO MSSQL extension

https://www.apachefriends.org/de/index.html

XAMPP ist eine kostenlose Entwicklungsumgebung mit Apache und PHP. Direkt nach der Installation ist MSSQL nicht unterstützt. Die PDO Erweiterung kann aber einfach hinzugefügt werden.

Getestet auf XAMPP Version 8.0.12 am 2021-11-10.

https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15

Das Paket herunterladen und installieren. Die entsprechende Datei ins Verzeichnis mit den Erweiterungen kopieren. C:\xampp\php\ext\

Die Datei anpassen mit der folgenden Linie.

C:\xampp\php\php.ini

extension=php_pdo_sqlsrv_80_ts_x64.dll

Apache server service neustarten.

Mit dem folgenden PHP code kann getestet werden ob der Treiber korrekt installiert wurde.

<?php
echo "<pre>" , print_r(PDO::getAvailableDrivers()) , '</pre>'

Wenn es erfolgreich war findet sich nun “sqlsrv” in der Liste.

“sqlsrv” = MSSQL PDO Treiber

PHP Beispiel für On-Prem MSSQL Server abfrage.

<?php
try {
    $conn = new PDO('sqlsrv:server=dbserver.example.com;Database=database_name;ConnectionPooling=0', 'dbuser', 'dbpassword');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    
     
    $stmt = $conn->prepare("SELECT TOP 10000 
		*  
	FROM dbo.Table tbl;");
    $stmt->execute(array());
 
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
	echo '<pre>' , print_r($result) , '</pre>';
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

PHP Beispiel für Azure SQL abfrage.

<?php
try {
    $conn = new PDO('sqlsrv:Server=tcp:sqlservername.database.windows.net,1433;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Database=databasename', 'dbuser', 'dbpassword');
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);    
     
    $stmt = $conn->prepare("SELECT TOP 10000 
		*  
	FROM dbo.Table tbl;");
    $stmt->execute(array());
 
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
	echo '<pre>' , print_r($result) , '</pre>';
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}

Links

https://www.php.net/manual/en/ref.pdo-sqlsrv.php

https://docs.microsoft.com/en-us/sql/connect/php/microsoft-php-driver-for-sql-server?redirectedfrom=MSDN&view=sql-server-ver15