在使用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_*函數,建議盡快更新為新擴展,以保證兼容性和可維護性。