配置PHP+mssql环境的一些常见问题及解决方案

Fatal error: Call to undefined function mysql_connect() in D:\PHP\www\index.php on line 7


PHP+MSSQL Call to undefined function mssql_connect() 错误解决:

    如果服务器端没有安装MSSQL 即使去掉EXTENTION中的 mssql.dll也会提示此错误。

    解决办法:

    1.打开php.ini 修改 ;extension=php_mssql.dll 去掉前面的;号(注意该文件是否存在,不存在去搜索下载);

    2.“在http.conf中加入:LoadFile (PHP物理路径)\ntwdblib.dll”或者“复制PHP目录下 ntwdblib.dll 文件到SYSTEM32目录下”。

 

    从php_mssql.dll引入表中可以看到该dll依赖于:

    php5ts.dll
    ntwdblib.dll
    msvcrt.dll
    kernel32.dll

    php5ts.dll所依赖的dll

    kernel32.dll
    advapi32.dll
    msvcr71.dll
    user32.dll
    netapi32.dll

    最后:查看一下kernel32.dll、advapi32.dll、user32.dll、netapi32.dll是否都存在于系统目录下。

    注意:1.windows下面一定要安装mssql或者,mssql客户端。如果一定要不安装那就操作第2注意项。

         2.ntwdblib.dll有版本要求,最好拷贝mssql里面的文件。只测试过客户端下的并通过。

         3.mssql.secure_connection的设置:网络连接mssql.secure_connection = Off,本地连接设为On。


出现下面这就话:
Strict Standards: Only variables should be passed by reference in D:\wamp\ecshop\includes\cls_template.php on line 406
 
第406行:$tag_sel = array_shift(explode(' ', $tag));
解决办法 1 

5.3以上版本的问题,应该也和配置有关 只要406行把这一句拆成两句就没有问题了 
$tag_sel = array_shift(explode(' ', $tag));
改成:
$tag_arr = explode(' ', $tag); 
$tag_sel = array_shift($tag_arr);  
(实验过,绝对可行)
因为array_shift的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值 
换句话说,就是把所有的函数中的参数,用一个变量存着,再加入到函数中。
如:aaa("123"); 改成
$a1="123";
aaa($a1);


解决办法 2 :
或则如果这样配置的话: error_reporting = E_ALL | E_STRICT
这个解决方法二、经过亲身体验,貌似解决不了,可能是我配置错了。试过成功的大牛们说一句。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值