PHP连接SQL Server数据库问题,急问,在线等

DaveLeeCN 2016-09-23 04:46:06
问题描述:
1、我在本地连接服务器端数据库,查询数据,没有任何问题;
2、把代码移植到服务器上再次查询,报错,sqlsrv驱动没找到;
3、FPM和cli模式都可以看到sqlsrv驱动已加载;
4、本地和服务器同样的64位系统,同样的SqlServer版本,同样的php版本及其他设定,这TM什么鬼?
PHP加了一句:

if (!extension_loaded('php_sqlsrv_55_ts.dll')) {
echo "Bad news";
}

页面显示结果如下:

Bad news{"code":500,"maxPage":null,"sum":null,"data":[]}
( ! ) Fatal error: Call to undefined function sqlsrv_error() in D:\wamp\www\DemoSqlServer\php\select.php on line 46
Call Stack
# Time Memory Function Location
1 0.0005 153248 {main}( ) ..\select.php:0

...全文
228 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
DaveLeeCN 2016-09-23
  • 打赏
  • 举报
回复
好吧,搞定了! 不要打开那个连接,直接去官网搜Microsoft ODBC Driver 11 for SQL Server下载,然后安装……
DaveLeeCN 2016-09-23
  • 打赏
  • 举报
回复
引用 11 楼 xuzuning 的回复:
你写错了,自然不会有正确的结果
if (!extension_loaded('php_sqlsrv')) {
Bad news{"code":500,"maxPage":null,"sum":null,"data":[]}Array ( [0] => Array ( [0] => IMSSP [SQLSTATE] => IMSSP [1] => -49 [code] => -49 [2] => This extension requires the Microsoft ODBC Driver 11 for SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712 [message] => This extension requires the Microsoft ODBC Driver 11 for SQL Server. Access the following URL to download the ODBC Driver 11 for SQL Server for x86: http://go.microsoft.com/fwlink/?LinkId=163712 ) [1] => Array ( [0] => IM002 [SQLSTATE] => IM002 [1] => 0 [code] => 0 [2] => [Microsoft][ODBC ��������������] δ��������Դ���Ʋ���δָ��Ĭ���������� [message] => [Microsoft][ODBC ��������������] δ��������Դ���Ʋ���δָ��Ĭ���������� ) )
改那个也没用,这是现在的报错信息……
那个页面是打开跳转到下载驱动的页面了,我明明装过的……
xuzuning 2016-09-23
  • 打赏
  • 举报
回复
你写错了,自然不会有正确的结果 if (!extension_loaded('php_sqlsrv')) {
DaveLeeCN 2016-09-23
  • 打赏
  • 举报
回复
引用 9 楼 xuzuning 的回复:
否则会有 Fatal error: Call to undefined function sqlsrv_connect() in .....

if (!extension_loaded('php_sqlsrv_55_ts.dll')) {
    echo "Bad news";
}
我加了这一句,页面输出了Bad News……
xuzuning 2016-09-23
  • 打赏
  • 举报
回复
否则会有 Fatal error: Call to undefined function sqlsrv_connect() in .....
xuzuning 2016-09-23
  • 打赏
  • 举报
回复
如果进入了 if (!$conn) 分支,就表示数据库连接错误 不表示 php_sqlsrv 没有加载
DaveLeeCN 2016-09-23
  • 打赏
  • 举报
回复

//数据库配置
$serverName = "192.168.0.100";
$connInfo = array("Database"=>"Test", "UID"=>"sa", "PWD"=>"admin");
$conn = sqlsrv_connect($serverName, $connInfo);

//连接数据库
if (!$conn)
{
	$data = new Data;
	$data->code = 500;
	$data->data = array();
	echo json_encode($data, JSON_UNESCAPED_UNICODE);
	die( print_r( sqlsrv_errors(), true));
	return false;
}
这是数据库配置和连接
DaveLeeCN 2016-09-23
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
你也不想想:如果没有成功加载 php_sqlsrv 的话,那不在连接数据库时就报错了吗?还会等到 sqlsrv_errors 才报错?
好吧,这个代码我是从mysqli替换成sqlsrv的,忘记改这儿了,不过这不重要,如果没有!conn也不会跳转到这不是?
xuzuning 2016-09-23
  • 打赏
  • 举报
回复
你也不想想:如果没有成功加载 php_sqlsrv 的话,那不在连接数据库时就报错了吗?还会等到 sqlsrv_errors 才报错?
xuzuning 2016-09-23
  • 打赏
  • 举报
回复
sqlsrv_errors 贪污个 s 对你有什么好处?
xuzuning 2016-09-23
  • 打赏
  • 举报
回复
if (!extension_loaded('php_sqlsrv')) {
DaveLeeCN 2016-09-23
  • 打赏
  • 举报
回复
引用 1 楼 kay89757sc 的回复:
为何不用mysql 多简单省事
mysql的做过一版,没问题,之前的项目用的SqlServer,非要做一版看看
kay89757sc 2016-09-23
  • 打赏
  • 举报
回复
为何不用mysql 多简单省事

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧