首页数据库php连接mssql数据库,php连接sqlserver

php连接mssql数据库,php连接sqlserver

编程之家2026-05-25758次浏览

大家好,关于php连接mssql数据库很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于php连接sqlserver的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

php连接mssql数据库,php连接sqlserver

php连接mssql数据库的几种方法_php实例

注意要重启服务使其生效。一、建立连接1、odbc首先,在php程序所在的服务器设置odbc。这里32位和64位操作系统有区别。32位的从控制面板中管理工具中的数据源(odbc)直接建立就可以了,64位的要运行C:WindowsSysWOW64odbcad32.exe从这里面设置。注意:上面只的是数据库服务器为32为的,数据源设置服务器为32位和64位两种的情况。只要两个服务器建立的数据源位数一致就好。下面是odbc建立连接代码。复制代码代码如下:$con= odbc_connect('odbc名称','用户名','密码'); 2、连接mssql2000复制代码代码如下:$con= mssql_connect('数据库地址','用户名','密码'); 3、连接mssql2008复制代码代码如下:$connectionInfo= array("UID"=用户名,"PWD"=密码,"Database"="数据库名称");$con= sqlsrv_connect(数据库地址,$connectionInfo);二、输入查询代码这个都一样,可以直接写入,也可以从mssql中验证好后复制过来。简单点说就是把一个sql语句赋值给一个变量。类似下面代码复制代码代码如下:$query="SELECT top 12*数据库名称 order by id desc";三、建立查询并取出数据1、odbc复制代码代码如下:$result= odbc_do($con,$query); while(odbc_fetch_row($result)){$变量名称= odbc_result($result,"字段名称");}2、连接mssql2000复制代码代码如下:$result= mssql_query($con,$query); while($row=mssql_fetch_array($result)){$变量名称=$row["字段名称"];}3、连接mssql2008复制代码代码如下:$result= sqlsrv_query($con,$query); while($row= sqlsrv_fetch_array($result)){$变量名称=$row["字段名称"];}在php5.3及以后的版本中不附带sqlsrv库了。所以要从微软这里下载。四、关闭连接

PHP连接MSSQL数据库时遇到SSL错误怎么办

在PHP连接MSSQL数据库时遇到SSL错误,可通过在连接参数中添加TrustServerCertificate=1来指示PHP信任服务器证书,从而绕过SSL验证错误。以下是具体解决方案及操作步骤:

一、通用PHP连接MSSQL的SSL错误处理当使用PHP的sqlsrv或pdo_sqlsrv扩展连接MSSQL时,若服务器证书未被信任,会触发类似以下错误:

SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]SSL Provider: The certificate chain was issued by an authority that is not trusted.解决方法:在连接字符串(DSN或参数数组)中显式启用TrustServerCertificate选项,强制客户端信任服务器证书。

示例代码(使用sqlsrv_connect)$serverName="server_address";$connectionOptions= ["Database"=>"database_name","Uid"=>"username","PWD"=>"password","TrustServerCertificate"=> true//或直接写 1];$conn= sqlsrv_connect($serverName,$connectionOptions);if($conn=== false){ die(print_r(sqlsrv_errors(), true));}示例代码(使用PDO)$dsn="sqlsrv:Server=server_address;Database=database_name;TrustServerCertificate=1";$username="username";$password="password";try{$conn= new PDO($dsn,$username,$password);} catch(PDOException$e){ die("Connection failed:".$e->getMessage());}二、ThinkPHP 6框架的特殊处理ThinkPHP 6的数据库配置需通过DSN字符串传递参数,因此需手动拼接TrustServerCertificate选项。

操作步骤修改数据库配置文件(如config/database.php):

php连接mssql数据库,php连接sqlserver

return ['connections'=> ['mssql'=> ['type'=>'sqlsrv','hostname'=>'server_address','database'=>'database_name','username'=>'username','password'=>'password','dsn'=>'',//预留DSN字段'params'=> [],//其他参数 ], ],];动态生成DSN(在应用初始化代码中):

//例如在公共文件或服务提供者中$config= config('database.connections.mssql');$config['dsn']='sqlsrv:Server='.$config['hostname'].';Database='.$config['database'].';TrustServerCertificate=1';config(['database.connections.mssql'=>$config]);或直接硬编码DSN(不推荐生产环境使用):

'connections'=> ['mssql'=> ['type'=>'sqlsrv','dsn'=>'sqlsrv:Server=server_address;Database=database_name;TrustServerCertificate=1','username'=>'username','password'=>'password', ],],三、其他注意事项安全性风险:TrustServerCertificate=1会绕过证书验证,仅适用于测试环境。生产环境应配置有效的SSL证书链,或通过以下方式替代:

将服务器证书导入客户端的信任存储库。

使用受信任的CA签发的证书。

驱动版本要求:确保使用最新版本的Microsoft Drivers for PHP for SQL Server。旧版本可能不支持该参数或存在兼容性问题。

php连接mssql数据库,php连接sqlserver

连接选项参考:完整连接选项详见Microsoft官方文档,包括:

Encrypt:强制加密连接(默认可能启用)。

ConnectionPooling:控制连接池行为。

四、调试建议若问题仍未解决,可:

启用PHP错误日志记录,捕获详细错误信息。使用sqlsrv_errors()或PDO的errorInfo()获取具体错误代码。测试通过SQL Server Management Studio(SSMS)直接连接,验证服务器配置是否正确。通过以上方法,可有效解决PHP连接MSSQL时的SSL证书验证问题,并根据实际环境选择安全合规的配置方案。

php连接sql2000问题

PHP完全可以连接MSSQL的。

1.首先需要MSSQLClientTools是一个dll叫做ntwdblib.dll,它通常在MSSQLServer安装以后被copy到系统的system32文件夹下;如果是SQLServer就在本地,那你需要核实的是该ntwdblib.dll的版本与SQLServer的版本一致(2005对应2000.80.194.0,2000对应的是2000.2.8.0;)如果SQLServer在远程,需要将那个ntwdblib.dll拷贝到本机器的system32文件夹下;

(这里经常遇见的一个问题是,如果php<通常是较老的ntwdblib.dll>晚于SQLServer安装的话,php的ntwdblib.dll会覆盖SQLserver安装时copy在system32下的ntwdblib.dll,导致链接是提示:链接不上数据库)

2.核实完system32下的ntwdblib.dll之后,还需要将正确版本的ntwdblib.dll覆盖php文件夹下的ntwdblib.dll;

3.使用MSSQLServer的方法与MySQL的方法很类似;

如下:

<?php

//链接数据库

$conn=mssql_connect('IBM-F24B11ED1CCSQLEXPRESS','sa','123456');

mssql_select_db('LabMIS',?$conn);

//query语句

$Query="select*fromadmin";

$AdminResult=mssql_query($Query);

//输出结果

$Num=mssql_num_rows($AdminResult);

for($i=0;$i<$Num;$i++)

{

$Row=mssql_fetch_array($AdminResult);

echo($Row[1]);

echo("<br/>");

}

?>

关于php连接mssql数据库到此分享完毕,希望能帮助到您。

mysql数据库使用教程(mysql使用步骤)java官网下载步骤,java入门