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

来源:互联网 发布:批量网页录入数据 编辑:程序博客网 时间:2024/06/05 07:45

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
这个解决方法二、经过亲身体验,貌似解决不了,可能是我配置错了。试过成功的大牛们说一句。