当前位置: 首页> 最新文章列表> 解决PHP Fatal error: Call to undefined function mysql_query() 错误的方法

解决PHP Fatal error: Call to undefined function mysql_query() 错误的方法

M66 2025-10-01

如何解决PHP Fatal error: Call to undefined function mysql_query()

在使用PHP进行网站开发时,开发者经常会遇到一些常见错误。其中,PHP Fatal error: Call to undefined function mysql_query() 是比较典型的一种。这种报错通常是因为没有正确使用数据库扩展函数。

错误出现的原因

从PHP 5.5开始,mysql_* 系列函数已被弃用,并在PHP 7中被彻底移除。因此,如果项目代码仍在使用 mysql_query() 这样的旧函数,就会导致上述错误。

要解决这个问题,需要改用官方推荐的 MySQLiPDO 扩展库。

使用MySQLi扩展的解决方案

<?php
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
    die('连接数据库失败: ' . $conn->connect_error);
}

$sql = 'SELECT * FROM users';
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo '用户名:' . $row['username'] . ', 邮箱:' . $row['email'] . '<br>';
    }
} else {
    echo '没有找到用户';
}

$conn->close();
?>

这段代码展示了如何使用 MySQLi 建立连接、执行查询并输出结果。如果连接失败,会返回提示信息。

使用PDO扩展的解决方案

<?php
$dsn = 'mysql:host=localhost;dbname=database';
$username = 'username';
$password = 'password';

try {
    $conn = new PDO($dsn, $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $sql = 'SELECT * FROM users';
    $stmt = $conn->query($sql);

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo '用户名:' . $row['username'] . ', 邮箱:' . $row['email'] . '<br>';
    }
} catch(PDOException $e) {
    echo '连接数据库失败: ' . $e->getMessage();
    exit;
}

$conn = null;
?>

使用PDO不仅可以处理MySQL,还能支持多种数据库,扩展性更强,同时通过异常机制更方便进行错误处理。

总结

当遇到 PHP Fatal error: Call to undefined function mysql_query() 错误时,问题通常是因为PHP版本中已不再支持旧的MySQL扩展。解决方法就是将代码迁移到 MySQLiPDO,这样不仅能避免报错,还能享受更强大的功能与更好的安全性。

如果你的项目还在使用旧的 mysql_* 函数,建议尽快更新为新扩展,以保证兼容性和可维护性。