致命错误:在第2行的C:\ Apache \ htdocs \ test.php中调用未定义的函数mysql_connect()
我今天花了11个小时试图解决这个问题。
我已安装: MySQL 5.1 Apache 2.2.14 PHP 5.2.17
这些是“PHP和MySQL”一书中提到的版本。
当我运行脚本时:
<?php
mysql_connect ('localhost', 'root', 'password');
?>
其中localhost,root和password是此给定测试的REAL值 系统和我所看到的是:
致命错误:在第2行的C:\ Apache \ htdocs \ test.php中调用未定义的函数mysql_connect()
答案 0 :(得分:18)
取消注释“php.ini”文件中的行extension=php_mysql.dll
并重新启动Apache。
此外,“libmysql.dll”文件必须可供Apache使用,即它必须在Windows系统PATH或Apache工作目录中可用。
在manual中查看有关安装MySQL扩展的更多信息。
P.S。我建议将MySQL扩展视为已弃用,并使用MySQLi甚至PDO来处理数据库(我更喜欢PDO)。
答案 1 :(得分:3)
我有类似的问题。在经过多次尝试跟踪论坛中的建议之后,我通过以下方式解决了这个问题。我正在重新发布解决方案,因为它可能对其他人有所帮助。
我正在运行Windows 7(Apache 2.2&amp; PHP 5.2.17&amp; MySQL 5.0.51a),文件“httpd.conf”中的语法(C:\ Program Files(x86)\ Apache Software Foundation \ Apache2 .2 \ conf \ httpd.conf)对斜杠很敏感。 您可以检查是否从正确的目录中读取“php.ini”。只需输入您的浏览器“localhost / index.php”即可。 index.php的代码如下:
<?php
echo phpinfo();
?>
有一行称为“加载配置文件”(距离顶部不远)。因此,如果没有添加任何内容,那么问题可能是您的“php.ini”未被读取,即使您取消注释(extension = php_mysql.dll和extension = php_mysqli.dll)。所以,为了使它工作,我做了以下步骤。我需要改变
PHPIniDir 'c:\PHP\'
到
PHPIniDir 'c:\PHP'
注意最后一个斜线扰乱了一切!
现在,在刷新“localhost / index.php”(我重新启动Apache2.2之前)以及mysql块之后,“加载配置文件”行获得“C:\ PHP \ php.ini”。 MySQL和PHP正在合作!
答案 2 :(得分:0)
从
更改 database.php 文件$db['default']['dbdriver'] = 'mysql';
到
$db['default']['dbdriver'] = 'mysqli';
答案 3 :(得分:-5)
我遇到了同样的问题,并使用下面的代码并且有效:
<?php
$link = mysqli_connect("localhost","root","") or die ("Couldn't not connect");
mysqli_select_db($link, "Enter your project name here");
?>