8/08/2011

[php] 存取 MySQL 資料庫

php對資料庫的基本操作流程:
  1. 建立連線: mysql_connect()
  2. 選擇資料庫:mysql_select_db
  3. 對資料庫查詢/修改/新增/刪除:mysql_query()
  4. 取回查詢資料(resource)
  5. 讀取記錄(row):mysql_fetch_array()
連線 MySQL 資料庫
打開非持久的MySQL連結
mysql_connect(伺服器位址,帳號,密碼)
//將之後的連線設定成utf8編碼的sql指令
mysql_query('SET NAMES UTF8');
//選擇資料庫
mysql_select_db(DBName);

完整例子
class DB {
    function DB() {
        $this->host = "localhost"; // your host
        $this->db = "myDatabase"; // your database
        $this->user = "root"; // your username
        $this->pass = "mysql"; // your password

        $this->link = mysql_connect($this->host, $this->user,
$this->pass);

        mysql_select_db($this->db);
    }
}
// 在你需要開始使用資料庫的地方(記得先include起來)
$db = new DB();

查詢資料

//執行查詢資料的 SQL,會回傳資源代碼
$result = mysql_query("SELECT * FROM `talbe_name`"); 
//讀取查詢的結果
while ($row = mysql_fetch_array($result)) {
  echo "查詢出來的名字是$row['name']";  //或$row[0],$row[1],...
}
//取得查詢筆數
mysql_num_rows($result);

新增、刪除、修改資料

//新增
mysql_query("INSERT INTO `TableName` (`id`,`name`) VALUES ('1', '伍')");
//取得前次因 auto_increment 自動編號所新增的id 
$newID = mysql_insert_id(); 
//刪除
mysql_query("DELETE FROM `TableName` WHERE `name` = '伍'");
//修改
mysql_query("UPDATE `TableName` SET NAME = 'hippo' WHERE `id` = '1'");

//取得前次更動了幾筆資料
mysql_affected_rows();

安全處理

//如果string中有SQL用的特殊字元,會加上反斜線 mysql_real_escape_string(string)
接收表單文字時
function myStripslashes($value){
// 若 get_magic_quotes_gpc 功能已經開啟,就刪掉反斜線
if (get_magic_quotes_gpc())
        $value = stripslashes($value);
    return $value;
}
寫入資料庫時
mysql_real_escape_string($_POST[xxx]);

沒有留言:

張貼留言