php和mysql作為web開發(fā)中最主要的兩個工具,一般都要同時使用。在實際開發(fā)中,不可避免會遇到一些報錯問題,對于初學者來說尤其會遇到很多困惑。本文將主要圍繞php和mysql常見的報錯問題,幫助讀者解決這些問題。
一、關于mysql
1.連接數據庫錯誤:
如果連接不到數據庫的話,則會出現(xiàn)以下的報錯:
Warning: mysqli_connect(): (HY000/1045): Access denied for user ‘root’@’localhost’ (using password: YES) in /var/www/html/phpfile.php on line 3這個錯誤是提示我們mysql登錄失敗,具體說是使用 root 用戶(可能也是別的用戶)登陸的時候,密碼錯誤。我們需要檢查mysql的用戶名和密碼是否正確,還要檢查php代碼中使用的是哪個用戶。 2.無法選中該數據庫: 如果成功連接了mysql,但是無法選定某一個具體的數據庫,則會出現(xiàn)以下報錯:
Warning: mysqli_select_db() expects parameter 1 to be mysqli, boolean given in /var/www/html/phpfile.php on line 4這個錯誤的原因可能有幾個,比如我們連接用戶名的密碼錯誤、我們沒有權限訪問這個數據庫等等,解決這個問題的最有效方法是檢查mysql的用戶名和密碼,以及我們到底有沒有訪問某個數據庫的權限。 3.數據庫中命名沖突: 即使數據庫連接成功,也經常會出現(xiàn)表結構或字段命名沖突的問題。例如:
Warning: mysqli_query(): (42S02/1146): Table ‘mytable’ doesn’t exist in /var/www/html/phpfile.php on line 5這個報錯表示mysql數據表不存在,通常是我們在調用某個表格或者表的字段時出現(xiàn)了拼寫錯誤、大小寫不匹配等問題。 4.mysql語法問題: 即使我們所有的表名和字段都沒問題,但是sql語句卻可能有問題。比如:
Warning: mysqli_query(): (42000/1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘miltiple lines here)’ at line 1 in /var/www/html/phpfile.php on line 5這個報錯就表示我們的sql語句有語法錯誤,通常出現(xiàn)在寫復雜sql語句時,我們需要檢查sql中是否有拼寫錯誤、語法錯誤、括號匹配等問題。 二、關于PHP 1.php寫錯: php作為web開發(fā)中主要的編程語言之一,我們在寫php代碼時,常會犯些小錯。比如:
Parse error: syntax error, unexpected ‘;’, expecting ‘)’ in /var/www/html/phpfile.php on line 8這個錯誤表示我們的代碼語法有問題,比如缺少終止括號等等。 2.文件或者目錄無法讀取: 如果我們在php代碼中調用某個文件或者目錄,有時會發(fā)現(xiàn)無法讀取,則會出現(xiàn)以下錯誤:
Warning: include(‘filename.php’): failed to open stream: No such file or directory in /var/www/html/phpfile.php on line 15這個錯誤表示文件或者目錄不存在,或者我們沒有讀取該文件的權限。需要檢查文件名和路徑是否正確以及我們執(zhí)行的代碼是否有訪問這個目錄的權限。 3.php中的變量問題: 有時候我們會在php中定義變量,但是會發(fā)現(xiàn)這個變量無法正常工作。例如:
Warning: Undefined variable $var in /var/www/html/phpfile.php on line 10這個錯誤表示我們定義的變量沒有被調用或者使用,通常我們需要在引用這個變量之前給它賦值。 4.內存溢出: 在php中,如果我們開辟的內存使用超過閾值,就會出現(xiàn)以下錯誤:
Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 32 bytes) in /var/www/html/phpfile.php on line 16這個錯誤表示我們使用的內存超過了最大閾值,通常這個閾值是在php.ini文件中設置的。我們需要修改php.ini文件或者調整我們的代碼。 總結: 本文主要講述了在php和mysql中可能遇到的一些錯誤,這些錯誤均會在開發(fā)過程中造成不小的困擾。針對這些錯誤,我們可以更加高效的糾正問題,確保應用的正常運行。