PHP MYSQL動態網頁編程錯誤修正指南_PHP教程

來源:互聯網
上載者:User
關於資料庫在WEB編程當中,資料庫的作用已經越來越不容忽視。提到資料庫,應當說PHP具有非常強大的資料庫支援功能,從FileMaker到 Oracle,幾乎與所有的資料庫系統都可以實現無縫串連。為了方便本文的講解,我們將主要以MySQL為例進行說明。不過對於其它的資料庫應用也同樣適用。

  使用PHP進行資料庫操作一般需要包括以下語句:

    $Host="localhost";
  $MySQL_UserName="root";
  $MySQL_UserPass="password";
  $MySQL_Database="db";
  $Query="SELECT * FROM domain";
  mysql_connect ($Host, $MySQL_UserName, $MySQL_UserPass);
  mysql_select_db ($MySQL_Database);
  $Result_ID=mysql_query ($Query);
  while ($Result=mysql_fetch_row($Result_ID)){
  print ------------------
;
  print "$Result[0]
";
  print "$Result[1]
";
  print "$Result[2]
";
  print "$Result[3]
";
  print -------------------
;
  }?>

  基本步驟包括建立與MySQL資料庫的串連,選擇資料庫操作對象,然後執行查詢語句。對於在上述過程中出現的錯誤的提示資訊一般來說都能夠較為準確和具體的描述所出現的問題。例如,“Connection failed due to a bad username”錯誤報表就清楚的指出由於使用者名稱錯誤而導致與資料庫的串連失敗。

  我們可以對以上所提到的這些函數的傳回值加以利用,從而減少出現不必要的麻煩。例如,mysql_connect函數在串連成功時會返回一個串連ID標識,假如串連失敗則發出錯誤提示。對此,我們可以進行如下利用:

  if (!mysql_connect (’localhost’, ’root’, ’password’)){
  print "Cannot connect to MySQL
";
  exit;
  }

  當與資料庫的串連出現問題時,我們可以輸出錯誤提示,並終止程式的執行。從長遠來看,這是一項非常好的防範措施。以此方式,我們重新編寫指令碼如下:

    $Host="localhost";
  $MySQL_UserName="root";
  $MySQL_UserPass="password";
  $MySQL_Datab ="db";
  $Query="SELECT * FROM domain";
  if (!mysql_connect ($Host, $MySQL_UserName, $MySQL_UserPass)){
  print "Cannot connect to MySQL: ".mysql_error();
  exit;
  }
  if (!mysql_select_db ($MySQL_Database)){
  print "Cannot select db
";
  exit;
  }
  if (!$Result_ID=mysql_query ($Query)){
  print "Query Error: ".mysql_error();
  exit;
  }
  while ($Result=mysql_fetch_row($Result_ID)){
  print ------------------
;
  print "$Result[0]
";
  print "$Result[1]
";
  print "$Result[2]
";
  print "$Result[3]
";
  print -------------------
;
  }?>

  這樣,當程式出現問題時,我們就可以馬上找到錯誤的根源,從而能夠做到有的放矢。

  接下來,我們就可以對資料庫進行查詢。不過,很多時候,當我們運行編寫好的查詢語句時,卻得不到任何返回資料。到底是什麼地方出錯了呢?最好的解決方案是把SQL語句賦予一個變數,例如:

    ....
  $SQL="SELECT * FROM $TableName WHERE $ColumnName > $Limit";
  $Result_ID=mysql_query($QUERY);
  ...?>

  然後當出現問題時,使用“print”或“echo”命令顯示該語句。注重檢查$ColumnName和$Limit的拼字是否正確,是否無意當中建立了新的變數。使用輸出顯示的方法可以很輕易的找到並解決拼字錯誤的問題。但是假如我們將SQL語句顯示出來之後仍然沒有找到明顯的錯誤該怎麼辦呢?這裡我們可以把輸出的語句粘貼到象Mysql命令列介面這樣的命令列工具中,看一看是否能夠返回資料。假如還是無法解決問題,就應該查看一下所使用帳號的使用者權限。

  如今,我們可以使用許多免費提供的類完成絕大部分的資料庫操作。PHP Classes(http://phpclasses.upperdesign.com/)上就有許多相關的資訊,可以供有愛好的使用者參考。其中, MetaBase能夠提供不依靠某種資料庫系統的查詢和治理。假如使用者正在同時使用幾種不同的資料庫系統,或者希望自己的程式能夠移植到其它的資料庫平台上的話,可以留意一下MetaBase的使用。

  注重事項最後,我們把使用PHP進行編程的過程中所應當注重的一些問題進行一下匯總,希望能夠對大家有所協助。

  1.檢查(),[],以及{}等符號,看看是否成對出現。
  2.檢查字串,注重假如要想在“”當中再使用“”的話,必須使用轉義符“”。

http://www.bkjia.com/PHPjc/630909.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/630909.htmlTechArticle關於資料庫在WEB編程當中,資料庫的作用已經越來越不容忽視。提到資料庫,應當說PHP具有非常強大的資料庫支援功能,從FileMaker到 Oracl...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.