sinat_21684855
2015-06-06 02:48
采纳率: 0%
浏览 3.4k

第一次自己做网站,搭建WAMP,MSsql连不上,实在不知道是为什么。请大家帮忙看看还能是什么原因?

第一次用Win7x64+Apache2.4+MSsql2012/2008+PHP5.6.9搭建WAMP来做网站,Apache已经装好,PHP也连上了,现在卡在了连接SQL的地方。
在微软官网Microsoft Drivers for PHP for SQL Server上下载了SQLSRV32.EXE,使用了php_sqlsrv_56_ts.dll和php_pdo_sqlsrv_56_ts.dll,按着网上的各种配置要求改做的都做了,但是依然报错Fatal error: Call to undefined function sqlsrv_connect() in D:\WAMP\Apache24\htdocs\phpinfo.php on line 16,能想到的办法都试过了,还是不行,还请各位指导!_
PS:
1.ntwdblib.dll_2000.80.194.0用的这个,拷在了D:\WAMP\php下和C:\Windows\System32下。
2.这一系列操作也做了[运行 SQL Server 配置管理器:SQL Server Configuration Manager,打开协议 Protocols, 允许命名管道 "named pipes" 和 "tcp/ip" , 右键点击 "tcp/ip",打开属性 Properties 标签 "IP addresses" ,在 TCP 动态端口 "TCP Dynamic Ports" 填入 1433 ]
3. php.ini里面 extension=php_sqlsrv_56_ts.dll extension=php_pdo_sqlsrv_56_ts.dll 都有,mssql.secure_connection = On也都有
4.apache服务器重启了很多次, httpd -k restart
5. test文件是D:\WAMP\Apache24\htdocs\phpinfo.php 内容见图片_图片说明

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

9条回答 默认 最新

  • Carry_Dominator 2015-06-06 03:16
    <connectionStrings>
        <add connectionString="server=.;uid=sa;pwd=401;database=VoteDB" name="connstr"/>
    </connectionStrings>
    public static DataTable GetTable(string strSql)
    {
        SqlConnection conn = CreatConn();
        SqlCommand cmd = new SqlCommand(strSql, conn);
        SqlDataAdapter daap = new SqlDataAdapter(cmd);
        DataTable dtTable = new DataTable();
        try
        {
            daap.Fill(dtTable);
            if (dtTable.Rows.Count > 0)
                return dtTable;
            else
                return null;
        }
        catch (Exception ex)
        {
    
            throw ex;
        }
    }
    
    点赞 评论
  • Carry_Dominator 2015-06-06 03:19

    看看你的SQL服务器名字、密码和你在代码里写的一样不,就是一开始登录SQL服务器时你是用WINDOWS身份验证还是SA登录的

    点赞 评论
  • blownewbee 2015-06-06 03:19
    点赞 评论
  • blownewbee 2015-06-06 03:22

    Fatal error: Call to undefined function sqlsrv_connect() 参考
    http://blog.csdn.net/sptoor/article/details/12409547

    点赞 评论
  • frank_20080215 2015-06-06 07:45

    估计是SQL Server2008和SQL Server 2008 Express的设置小差异,没弄清楚

    点赞 评论
  • 初吻献给小奶瓶 2015-06-06 16:04

    下载个不同的php对应的数据库扩展试试!

    点赞 评论
  • Call to undefined function sqlsrv_connect()

    _报这个错说明你的PHP sqlserver扩展没有加载成功,用phpinfo()看一下里面有没有_sqlserver扩展的相关信息

    点赞 评论
  • ZDL男人海洋 2017-07-05 07:19

    一样的问题!网上怎么也找不到答案!!!! WAMP 版本 Apache 2.4.23 PHP 5.6.25 。微软官网上下载的扩展,php_pdo_sqlsrv_56_ts.dll,版本应该没有错。官网上也没区分64位和32位。但运行WAMP时就是加载不成功。为什么会加载不成功呢??

    PHP Warning: PHP Startup: Unable to load dynamic library 'D:/wamp64/bin/php/php5.6.25/ext/php_sqlsrv_56_ts.dll' - %1 ������Ч�� Win32 Ӧ�ó���

    in Unknown on line 0

    点赞 评论
  • ZDL男人海洋 2017-07-05 07:47

    找到原因了。

    今天配置服务器需要用PHP和Sqlserver2008数据库,网上找了一些资料,基本上都是说需要下载微软的驱动放在ext文件夹后,再在php.ini中增加如下配置:
    [PHP_PDO_SQLSRV]
    extension=php_pdo_sqlsrv_56_ts.dll
    [PHP_SQLSRV]
    extension=php_sqlsrv_56_ts.dll
    最后重启服务器即可,但我重启了apache之后在phpinfo中还是没有看到sqlsrv的扩展,后来在百度贴吧http://tieba.baidu.com/p/3214930266中找到了问题关键:

    原来微软官方提供的microsoft drivers 3.2 for php for sql server并不支持64位的php版本,一些非官方的3.0.2.2倒是单独提供了64位版本的编译,[url]http://链接:http://robsphp.blogspot.co.uk/2012/06/unofficial-microsoft-sql-server-driver.html[/url](这个在墙外打不开),
    不过还好有热心网友提供了百度的分享,http://pan.baidu.com/s/1dDIRpJF,
    这就是最终比较完美的解决方案了,下载好,里面会有32位和64位的扩展,解压对应php版本需要的扩展,然后在php.ini中添加extension=php_sqlsrv_版本号_线程安全版本号.dll,比如extension=php_sqlsrv_56_ts.dll,64位php亲测可行,如果是32位的还是建议使用微软官方提供的3.2ctp版的http://www.microsoft.com/en-us/download/details.aspx?id=20098

    同时大家可以参考“嘿Linux”博客:
    http://heilinux.blog.51cto.com/6123663/1584281

    点赞 评论

相关推荐 更多相似问题