[php] 存取 MySQL 資料庫
php對資料庫的基本操作流程:
- 建立連線: mysql_connect()
- 選擇資料庫:mysql_select_db
- 對資料庫查詢/修改/新增/刪除:mysql_query()
- 取回查詢資料(resource)
- 讀取記錄(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())
function myStripslashes($value){
// 若 get_magic_quotes_gpc 功能已經開啟,就刪掉反斜線
if (get_magic_quotes_gpc())
$value = stripslashes($value);
return $value;
}
}
寫入資料庫時
mysql_real_escape_string($_POST[xxx]);