php 连接SqlServer(Windows/Linux)
最近遇到要用php连接SqlServer的情况,发现在Windows和Linux下还是有区别的,也遇到了不少坑,在此记录一下:
windows下:
我使用的是PHP Version 5.4.33 NTS,VC9
需要注意的是要按照sqlsrv的相关扩展
修改php.ini把这两项前面的分号去掉,重启Apache服务即可:
extension=php_sqlsrv.dll
extension=php_pdo_sqlsrv.dll
Linux下:
linux环境下需要安装php-mssql的扩展
windows环境下代码:
// 连接信息
$connectionInfo = array(
"UID" => 'sa',
"PWD" => '123456',
"Database" => 'test'
);
// 连接服务器,并选择一个数据库
$connection = sqlsrv_connect('localhost', $connectionInfo);
// 查询不到结果
if ($connection === false) {
$msg = '无法连接数据库' . sqlsrv_errors()[0]['message'];
echo $msg;
}
try {
// 查询用户数量
$sql_count = "SELECT COUNT(1) as sum FROM user";
// 查询数据
$result = sqlsrv_query($connection, $sql_count);
// 将数据放入数组
while ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)) {
$data[] = $row;
}
} catch (Exception $e) {
$msg = $e->getMessage();
echo $msg;
}
echo "user sum: " . $data['sum'];
// 关闭连接
sqlsrv_close($connection);
Linux环境下连接代码:
try {
$connection = mssql_connect('localhost', 'sa', '123456');
} catch (Exception $e) {
$msg = $e->getMessage();
echo $msg;
}
// 查询不到结果
if ($connection === false) {
$msg = '无法连接数据库';
echo $msg;
} else {
// 选择一个数据库
mssql_select_db('test', $connection);
}
// 查询用户数量
$sql_count = "SELECT COUNT(1) as sum FROM user";
// 查询数据
$result = mssql_query($sql_count, $connection);
// 将数据放入数组
while ($row = mssql_fetch_array($result, 1)) {
$data[] = $row;
}
echo "user sum: " . $data['sum'];