apache + php + mysql 用php连接mysql时出现内存不能为read 只有一个语句也会出现 0x0075ac50  内存不能为read  
如:
<?php
@mysql_connect("localhost","root","admin")
or die("数据库连接失败!");
?>  
请问这是什么错误?应怎样解决?谢谢

解决方案 »

  1.   

    应该是配置的问题。你那个MySQL扩展可能没有加载好,或者不兼容,你试一下重新配置,记得libmysql.dll复制到system32文件夹下。
      

  2.   

    我以前碰到过一模一样的问题, 折腾了很久才搞清楚.
    在"mysql的安装目录\bin"中, 有一个libmySQL.dll, 而在安装mysql的时候, windows installer版的安装程序会问我们要不要把"mysql安装目录\bin"放入环境变量path中, 一般我们都会同意放入path中.
    然后在装完php和apache时, 我们需要把php扩展的环境变量手动添加到path中, 一般就是我们会把这个路径添加到path的最后
    然后在apache的phpmodule调用mysql的库来访问mysql时, 会首先查找libmysql.dll文件, 然后这个dll会使用php ext里的dll来完成访问工作.
    问题就出在这里了, 因为在path中mysql的环境变量在php环境变量的前面, 所以libmysql.dll文件时mysql的, 而他所需要的dll文件却是有php ext来提供的, 而php ext也提供了自己的libmysql.dll,却由于优先级问题, 而并没有被使用, 而按照我刚才所描述的安装方式会造成用mysql带的libmysql.dll来访问php ext带的其他dll文件的问题, 这样会造成版本不一致而出现崩溃. 决绝方法很简单, LS的方式是将php ext的libmysql放到system32, 认为提升这个dll的优先级, 另外一种也是我推荐的方式, 就是在path设置中改变php ext目录和mysql bin目录的顺序, 或者直接删掉mysql bin.