如何操作MySQL

<?php
  $Host = "127.0.0.1";
  $User = "Dana";
  $Pass = "123456";
  $Database = "TEST_DB";
  
  $SQL = "SELECT ACCOUNT, NAME FROM tabUserInfo";
  if(!($DBLinkID = mysql_connect($Host, $User, $Pass))) {
    echo "無法MySQL連接資料庫!";
    exit();
  }
  
  mysql_select_db($Database, $DBLinkID);
  $ResultID = mysql_query($SQL, $DBLinkID);
  if (!$ResultID) {
    echo "SQL語法有誤!";
    mysql_close($DBLinkID);
    exit();
  }
  
  // 使用 物件(object) 方式
  while ($TableRow = mysql_fetch_object($ResultID)) {
    echo $TableRow->ACCOUNT;
    echo " ";
    echo $TableRow->NAME;
    echo "<br>";
  }
  
  /* 或
  // 使用 陣列(array) 方式
  while ($TableRow = mysql_fetch_array($ResultID)) {
    echo $TableRow[0];
    echo " ";
    echo $TableRow[1];
    echo "<br>";
  }
  */
  
  mysql_free_result($ResultID));
  mysql_close($DBLinkID);
?>
資料庫內容:
欄位名ACCOUNTNAME
1cow牛牛
2dana娜娜
3guest訪客
函式:
  1. mysql_connect("主機名稱", "帳號", "密碼")
    連結MySQL伺服器,並傳回一個連結ID(MySQL-Link);接下來要執行的SQL均需此連結ID。
  2. mysql_select_db("資料庫名稱", "連結ID")
    選擇資料庫。
  3. mysql_query("SQL指令", "連結ID")
    執行SQL指令,並將結果放入集合ID。
  4. mysql_fetch_object("集合ID")
    用物件(object)的方式取得資料列,並用 $ResultID->欄位名 取得各欄資料。
  5. mysql_fetch_array("集合ID")
    用陣列(array)的方式取得資料列,並用 $ResultID[序號(0開始)] 取得各欄資料。
    使用SELECT COUNT(xxx)、MAX(xxx)、MIN(xxx)、SUM(xxx)、AVG(xxx) 等SQL指令聚合函式 ,較適合使用本方式。
  6. mysql_free_result("集合ID")
    釋放Select指令的結果集合所佔的記憶體,Insert、Update及Delete無須此函式。
  7. mysql_close("連結ID")
    關閉與MySQL伺服器的連結。
  8. exit()
    中斷程式。
說明:
  1. $Host:MySQL伺服器所在的主機名稱,若為PHP程式碼與MySQL在同一台主機內,則可設為$Host=""。若PHP程式碼與MySQL在不同主機時,則MySQL必須授權PHP程式碼所在主機可以連結伺服器。
  2. $User:可以連上MySQL的帳號。
  3. $Pass:可以連上MySQL帳號的密碼。
  4. $Database:該帳號可以使用的資料庫。
  5. 先使用mysql_connect()連結資料庫,並會回傳一個連結ID(MySQL-Link),若傳回值為零(0)表示連結失敗。
  6. 再使用mysql_select_db()選擇資料。
  7. 然後使用mysql_query()執行SQL指令,並將結果回傳集合內,若傳回值為零(0)表示指令執行失敗。
  8. 用mysql_fetch_object()將集合內的資料,一列一列利用物件的方式讀出,例如$TableRow->ACCOUNT,即取出ACCOUNT欄位值。
    用while()判斷,直到集合結束。
  9. 若不再使用該集合資料,則可用mysql_free_result()釋放所佔的記憶體。
  10. 最後用mysql_close()結束伺服器。
  11. exit(),當程式有問題可立即中斷。
  12. SQL指令請參閱「SQL筆記區」。
除錯:
  1. Warning: MySQL Connection Failed: Can't connect to MySQL server on 'localhost' (10061) in File.php on line 48
    在檔案File.php的第48行,連結MySQL資料庫失敗。
  2. Warning: Supplied argument is not a valid MySQL-Link resource in File.php on line 49
    在檔案File.php的第49行,因MySQL-Link不存在,所以無法執行SQL。
  3. Warning: Supplied argument is not a valid MySQL result resource in File.php on line 34
    在File.php第34行,可能因為語法有錯,所以沒有正確得到Result。
  4. 本頁所有指令僅適用於 MySQL ,其他資料庫操作請參照函式庫說明。

作者:Dana, cowwu@ms15.hinet.net, 2001/03/14
本文章公開於個人網站 http://www.dana.idv.tw
Home Copyright © Shu-Chen Wu