欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php链接mysql问题,求各位大大解答

程序员文章站 2022-06-12 12:03:33
...
能够打印出php的配置信息,apache也能正常启动,mysql也能登录进去,为啥在编写一个测试php链接数据库就死活连接不上,本人新手,求各位高手们解答:测试代码:


$host='localhost';
$user_name='root';
$password='123456';
$conn=mysql_connect($host,$user_name,$password);
if (!$conn)
{
die('数据库连接失败');
}
echo '数据库连接成功!';

if (mysql_close($conn))
{
echo '
...
';
echo '到数据库的连接已经成功关闭';
}
?>


运行错误提示:Fatal error: Call to undefined function mysql_connect() in E:\Tools\httpd-2.2.19-win64\httpd-2.2-x64\htdocs\index.html on line 7
可是用户名跟密码我明明没错,也能登录是爱没办法了!

测试php配置信息代码:
phpinfo();
?>
这个能输出php佩斯信息;
弄了好几个小时了,还是没辙求大大们。


回复讨论(解决方案)

没人吗?在线等啊 ,我就这样一直等到天亮

phpinfo中,没有mysql, 打开php.ini配置文件,把extension=php_mysql.dll 前面的分号去掉,保存,重启Apache 就可以了。

没人吗?在线等啊 ,我就这样一直等到天亮
解决否???

extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_oci8.dll
extension=php_openssl.dll
都做了,这些。

还有我发现我运行php.exe时候提示无法启动,计算机中丢失OCI.dll,什么意思?

数据库名呢?

不用填数据库名都可以吧,$con = mysql_connect("localhost","mysql_user","mysql_pwd");
w3c的一个例子。

对了,我发现一个问题,我现在换成WampServer这个集成的来用来,把测试文件用WampServer来测试还是不可以链接,于是我把密码设置为空,就链接成功了,我点击Mysql控制台的时候会提示我输入密码,这就证明我是有设置密码的,而且我在安装mysql的时候设置了密码的,我就纳闷了,我现在退出了WampServer,同样的代码在WampServer下能连接成功在改用apache+mysql+php搭建的来连接就不成功,密码有或空哦都链接不成功,头都大了,我都配置了2遍了,挨着挨着的看到,唉................

undefined function mysql_connect
很明显 php_mysql 没有加载或加载失败

请注释掉 extension=php_oci8.dll
既然你不用 oracle, 为何要打开它?如果你确实需要使用 oracle,那么你如何不知道要安装 oracle 客户端呢?

不要在两个集成环境中验证 mysql 的工作情况。在集成环境中,mysql 是隶属于集成环境的,并不作为单独的服务存在
这就是说,在一个集成环境中能使用mysql,而在另一个中不能,是极其正常的事情

php_mysql 需要 php 安装目录中的mysql支撑库,所以你需要将php安装目录置于操作系统的搜索路径中
绿色的做法是在 httpd.conf 加入 LoadFile "php安装路径/php5ts.dll"
由 php5ts.dll 去找

这个LoadFile "php安装路径/php5ts.dll"放在httpd.conf的那个位置能具体点吗?第一次配置这东西,很多都不懂,嘿嘿。



$conn=mysql_connect('127.0.0.1','root','123456');
if (!$conn)
{
die('数据库连接失败'. mysql_error());
}
echo '数据库连接成功!';

if(mysql_close($conn))
{
echo '到数据库的连接已经成功关闭';
}
?>



Fatal error: Call to undefined function mysql_connect() in E:\Tools\httpd-2.2.19-win64\httpd-2.2-x64\htdocs\testmysql.html on line 4

你确认mysql扩展在phpinfo()中看到了吗

在httpd.conf文件里在LoadModule php5_module "c:/php/php5apache2_2.dll"下面追加如下语句即可:
PHPIniDir "c:/php"

LoadModule php5_module "E:/Tools/PHP/php-5.2.5 (x64)/php5apache2_2.dll"
PHPIniDir "E:\Tools\PHP"
这是我的