在使用PHP进行网站开发时,开发者经常会遇到一些常见错误。其中,PHP Fatal error: Call to undefined function mysql_query() 是比较典型的一种。这种报错通常是因为没有正确使用数据库扩展函数。
从PHP 5.5开始,mysql_* 系列函数已被弃用,并在PHP 7中被彻底移除。因此,如果项目代码仍在使用 mysql_query() 这样的旧函数,就会导致上述错误。
要解决这个问题,需要改用官方推荐的 MySQLi 或 PDO 扩展库。
<?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 建立连接、执行查询并输出结果。如果连接失败,会返回提示信息。
<?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扩展。解决方法就是将代码迁移到 MySQLi 或 PDO,这样不仅能避免报错,还能享受更强大的功能与更好的安全性。
如果你的项目还在使用旧的 mysql_* 函数,建议尽快更新为新扩展,以保证兼容性和可维护性。