致命错误:在第2行的C:\ Apache \ htdocs \ test.php中调用未定义的函数mysql_connect()

时间:2011-03-03 10:33:55

标签: php

致命错误:在第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()

4 个答案:

答案 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");
?>