我在Linux服务器上使用PHP 5.3.3版。当我尝试使用mysql_connect()或mysqli_connect()来访问数据库时,我收到一条错误消息:
致命错误:调用未定义的函数mysql_connect()
或
致命错误:调用未定义的函数mysqli_connect()
您可以在此处查看我的测试页:http://gorp.osg.ufl.edu/BOT3151/testing.php
您可以在此处查看phpinfo页面:http://gorp.osg.ufl.edu/phptest.php
相关的configure命令在这里:
'--with-mysql=shared,/usr'
'--with-mysqli=shared,/usr/lib64/mysql/mysql_config'
'--with-pdo-mysql=shared,/usr/lib64/mysql/mysql_config'
它还说正在解析这些.ini文件:
/etc/php.d/mysql.ini
/etc/php.d/mysqli.ini
php.ini文件还包括以下行:
extension=mysql.so
extension=mysqli.so
那么这里出了什么问题? mySQL是否未在服务器上正确安装?我该如何解决这个问题?
ADDENDUM:我应该已经解释过,这是在我不管理的共享服务器上。我只能通过SFTP访问服务器上的文件夹。但我有一个php.ini文件,我有一个扩展文件夹。这是我可以自行解决的问题,还是需要服务器管理员的帮助?
答案 0 :(得分:2)
尝试通过以下方式安装PHP MySQL:
apt-get install php5-mysql
然后可以使用PHP和Apache设置轻松设置MySQL。如果您的MySQL已经安装,您可以先卸载它,然后尝试通过上面的代码在终端中安装PHP MySQL。
这是最简单的方法,无需任何设置。
答案 1 :(得分:2)
未加载“mysqli”扩展名。您无法在phpinfo()文件中看到该部分。
http://gorp.osg.ufl.edu/phptest.php
您应该在该页面上看到类似的内容: https://drive.google.com/open?id=0B7VdYIkRLxQWaDRLYVNLeU84am8
仅仅因为您已取消注释行extension=mysqli.so
并不意味着它会加载。文件mysqli.so
可能不在PHP正在查找或根本不存在的文件夹中。
检查php.ini
文件中的“extension_dir”。然后去查看文件mysqli.so
是否真的存在。
您重启了网络服务器吗?
答案 2 :(得分:0)
鉴于您的PHP信息页面未列出显示MySQL配置的部分,因此可能无法在您的服务器上安装MySQL。
答案 3 :(得分:0)
我遇到了类似的问题。 php.ini文件中的默认值存在一些问题。如果您的问题没有通过上面给出的答案解决,请查看this答案。