Fatal error: Call to undefined function mysql_connect()请问这个问题您是如何解决的?
我碰到的好像和您的一样,extension目录也改了,php_mysql.dll前面的分号也去了,libmysql.dll都COPY了,apache里面php.ini路径...
我碰到的好像和您的一样,extension目录也改了,php_mysql.dll前面的分号也去了,libmysql.dll都COPY了,apache里面php.ini路径也加载了,可是还是不行,求教大神
展开
2个回答
展开全部
这个问题典型的php_mysql.dll没有加载成功
首先你当然要确认php.ini里面extension路径对不对,就是说在确定php_mysql.dll一定存在的情况下按以下方法解决
你机器上一定装了MySQL,而且先装了MySQL,安装MySQL时候会加一个环境变量path,是mysql/bin这个路径,这个目录下面有个DLL叫libmysql.dll,PHP目录下面也有一个libmysql.dll,这两个是不同的文件,不能混用,就是因为PHP找到了MySQL/bin下面的libmysql.dll,所以php_mysql.dll加载失败
下面分析一下
环境变量path里面 mysql/bin这个路径如果在PHP路径之前,加载php_mysql.dll时候 PHP会先在mysql/bin这个路径下面找到libmysql.dll,然后发现不能识别,所以php_mysql.dll加载失败
网上传说普通的解决方法是把PHP里面的php_mysql.dll和libmysql.dll拷贝到system32下,这是因为system32的路径在path最前面,这些回答治标不治本,万一system32路径在path排在后面呢……
实际上起作用的方法就是在环境变量里面把php路径放在mysql/bin这个路径前面,让PHP找的时候先找到PHP下面那个libmysql.dll就可以了
PS:“我希望看到我这个解答的PHPer都能记住我这个解释
别在向网上到处传的什么集成安装包,什么注意配置,什么注意配置文件路径,如果改个配置那么简单还有那么多人问么,我想知道回答这个问题的那么多人,有几个真正遇到过这个问题,是真正自己找到问题根源的,都复制一下回答别人,有意思么”
望采纳
首先你当然要确认php.ini里面extension路径对不对,就是说在确定php_mysql.dll一定存在的情况下按以下方法解决
你机器上一定装了MySQL,而且先装了MySQL,安装MySQL时候会加一个环境变量path,是mysql/bin这个路径,这个目录下面有个DLL叫libmysql.dll,PHP目录下面也有一个libmysql.dll,这两个是不同的文件,不能混用,就是因为PHP找到了MySQL/bin下面的libmysql.dll,所以php_mysql.dll加载失败
下面分析一下
环境变量path里面 mysql/bin这个路径如果在PHP路径之前,加载php_mysql.dll时候 PHP会先在mysql/bin这个路径下面找到libmysql.dll,然后发现不能识别,所以php_mysql.dll加载失败
网上传说普通的解决方法是把PHP里面的php_mysql.dll和libmysql.dll拷贝到system32下,这是因为system32的路径在path最前面,这些回答治标不治本,万一system32路径在path排在后面呢……
实际上起作用的方法就是在环境变量里面把php路径放在mysql/bin这个路径前面,让PHP找的时候先找到PHP下面那个libmysql.dll就可以了
PS:“我希望看到我这个解答的PHPer都能记住我这个解释
别在向网上到处传的什么集成安装包,什么注意配置,什么注意配置文件路径,如果改个配置那么简单还有那么多人问么,我想知道回答这个问题的那么多人,有几个真正遇到过这个问题,是真正自己找到问题根源的,都复制一下回答别人,有意思么”
望采纳
更多追问追答
追问
我重新安装了apache,php,mysql,教程按着http://tech.163.com/06/0206/11/299AMBLT0009159K_3.html ,安装mysql数据库端口改成3320,服务的名称改成MYSQL41,环境变量中,php和php/ext的路径我放在了最前面,但是还是不行。是不是因为mysql的端口和服务名称改了?再者,我看上面需要加载两个文件,一个是php_mysql.dll,另一个是libmySQL.dll,但是我在php和php/ext目录下面只找到了php_mysql.dll,并未找到libmySQL.dll文件
追答
libmysql.dll在PHP安装目录下,php_mysql.dll在php安装目录的ext文件夹下,ext文件夹和libmysql.dll同级
mysql_connect()函数找不到,是PHP加载php_mysql.dll不成功,跟MySQL有没有安装都没有关系,更不要说端口或者服务了
加载php_mysql.dll时候,php_mysql.dll会根据环境变量寻找libmysql.dll,找不到,或者libmysql.dll不是他所要的,就加载不成功
这里提醒一下,我建议在windows下设置PHP.ini,extension_dir用完整路径
extension_dir = "E:\php5\ext"
你注意一下windows系统日志,或者apache的error.log,里面会有启动报错信息,如果php_mysql.dll加载失败,里面会写的很清楚,希望加载哪个路径下面的DLL失败
还有,注意修改环境变量后重启生效的问题
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询