分享主题:linux,nginx,php,mysql

php连接sqlserver失败的原因,php连sqlserver是个大坑,php mssql使用数据库账号还是域账号

php7 adminqaz 35℃ 0评论 现在加入小程序俱乐部QQ群:483987340

php通常跟mssql数据库一起使用,
但是在开发一些企业应用时,
由于企业原来的应用使用MSSQL,
必须要让php连接SQL Server,
这也是一个大坑,
下面讲讲使用php连接SQL Server失败的3种常见原因…

PHP连接SQL Server

随便提一下,
在进行php连接mssql前,
你需要先把sqlsrv这个扩展装好,
这也是一大堆坑。

php连接SQL Server代码如下

//$serverName = "localhost";
$serverName = "127.0.0.1";
$connectionInfo = array( "Database"=>"qinziheng", "UID"=>"sa", "PWD"=>"123456");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}

一、 身份验证模式不对

SQL Server有两种身份验证模式,
1-1) windows身份验证模式,
即使用windows系统中的账号或域账号。

1-2) SQL Server 验证模式 有的也叫 SQL Server和Windows身份验证模式
使用SQL Server数据库创建的账号,
建议使用第2种SQL Server验证模式。

二、 账号密码不对

在php连接msql数据库时,
涉及到windows系统账号,域账号和SQL Server数据库账号,
这么多账号,
对第一次连接的朋友来说,
不知道选择哪一种。

我们自己使用php开发mssql数据库时,
使用 1-2 中的SQL Server身份认证模式,
是使用SQL Server数据库账号连接成功的,
域账号连接失败。

windows系统账号 和 SQL Server数据库账号 的关系,
就像linux中,
linux系统账号 和 mysql数据库账号 的关系,
你不能用 linux 中的 www 用户,登录连接mysql数据库。

三、 未授权访问数据库

虽然你的账号密码是对的,
但是php连接mssql还是失败,
原因是你的账号没有访问数据库的权限,
这时需要在SSMS(sql server management studio)中,
对用户进行授权,
或者把用户添加到对应的安全组里。

还有一种可能出错原因

上面3个原因是开发中经常遇到过的,
如果你的php跟SQL Server安装在不同一台主机上,
还有一种可能,
就是SQL Server未允许远程连接和访问。

猛击这里
观看子恒老师《php采集》系列视频
了解实现过程和下载相关源代码

秦子恒公众号

来源:秦子恒博客,欢迎转载分享,请保留出处

php连接sqlserver失败的原因,php连sqlserver是个大坑,php mssql使用数据库账号还是域账号链接:https://www.qinziheng.com/php7/8752.htm

现在就加入微信开发QQ群2:483987340,跟同行探讨微信公众平台开发。群满就关闭,你得等到下一个群开通才能加入……

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址