當前位置: 首頁> 最新文章列表> 解決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(&#39;連接數據庫失敗: &#39; . $conn->connect_error);
}

$sql = &#39;SELECT * FROM users&#39;;
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo &#39;用戶名:&#39; . $row[&#39;username&#39;] . &#39;, 郵箱:&#39; . $row[&#39;email&#39;] . &#39;<br> &#39;;
    }
} else {
    echo &#39;沒有找到用戶&#39;;
}

$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 = &#39;SELECT * FROM users&#39;;
    $stmt = $conn->query($sql);

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo &#39;用戶名:&#39; . $row[&#39;username&#39;] . &#39;, 郵箱:&#39; . $row[&#39;email&#39;] . &#39;<br> &#39;;
    }
} catch(PDOException $e) {
    echo &#39;連接數據庫失敗: &#39; . $e->getMessage();
    exit;
}

$conn = null;
?>

使用PDO不僅可以處理MySQL,還能支持多種數據庫,擴展性更強,同時通過異常機制更方便進行錯誤處理。

總結

當遇到PHP Fatal error: Call to undefined function mysql_query()錯誤時,問題通常是因為PHP版本中已不再支持舊的MySQL擴展。解決方法就是將代碼遷移到MySQLiPDO ,這樣不僅能避免報錯,還能享受更強大的功能與更好的安全性。

如果你的項目還在使用舊的mysql_*函數,建議盡快更新為新擴展,以保證兼容性和可維護性。