Modern PHP applications use Microsoft's sqlsrv driver or PDO through pdo_sqlsrv. The old mssql extension and its mssql_* functions are legacy material.
<?php
echo 'sqlsrv: ' . (extension_loaded('sqlsrv') ? 'enabled' : 'not enabled') . '<br>';
echo 'pdo_sqlsrv: ' . (extension_loaded('pdo_sqlsrv') ? 'enabled' : 'not enabled');
?>
<?php
$serverName = 'localhost';
$options = [
'Database' => 'myDB',
'UID' => 'user',
'PWD' => 'password',
'CharacterSet' => 'UTF-8',
];
$conn = sqlsrv_connect($serverName, $options);
if ($conn === false) {
throw new RuntimeException('SQL Server connection failed.');
}
?>
<?php
$sql = 'SELECT emp_no, name FROM employees WHERE department_id = ?';
$params = [10];
$stmt = sqlsrv_query($conn, $sql, $params);
if ($stmt === false) {
throw new RuntimeException('Query failed.');
}
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
echo htmlspecialchars((string) $row['emp_no'], ENT_QUOTES, 'UTF-8')
. ' '
. htmlspecialchars((string) $row['name'], ENT_QUOTES, 'UTF-8')
. '<br>';
}
sqlsrv_free_stmt($stmt);
sqlsrv_close($conn);
?>
phpinfo()phpinfo() can show loaded modules and driver configuration. On a public server, do not leave a full phpinfo page exposed because it reveals extensive environment details.
mssql_* exampleThe following pattern belongs to old PHP applications and should not be used for new code:
<?php
// Legacy only: removed from modern PHP.
$link = mssql_connect($servername, $dbusername, $dbpassword);
$result = mssql_query('SELECT * FROM emp_m', $link);
?>
<?php
$pdo = new PDO(
'sqlsrv:Server=localhost;Database=myDB',
'user',
'password',
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
?>
Very old Windows/PHP installations used configuration such as the following. It is retained only to help when reading old tutorials or maintaining old servers.
extension=php_mssql.dll
<?php
// Legacy only.
$result = mssql_query('SELECT * FROM emp_m', $link);
while ($row = mssql_fetch_array($result)) {
echo $row['emp_no'] . ' ' . $row['name'] . '<br>';
}
?>← phpinfo() Read configuration with ini_get() →
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.