:: 初始化 Database 類別
include_once("database.php"); // 載入函式庫
// 初始化類別;
$DBHost = "localhost";
$DBUserName = "User";
$DBPassWord = "Pass";
$DBName = "test";
$DBCtr = new DBCtr($DBHost,$DBUserName,$DBPassWord);
include_once("database.php"); // 載入函式庫
// 初始化類別;
$DBHost = "localhost";
$DBUserName = "User";
$DBPassWord = "Pass";
$DBName = "test";
$DBCtr = new DBCtr($DBHost,$DBUserName,$DBPassWord);
$DBCtr->linkDB($DBName); //不指定,預設為utf-8編碼連線
// OR
$DBCtr->linkDB($DBName,'utf-8'); //指定為utf-8編碼連線
// 資料庫回傳格式設定
$DBCtr->fetchmode = PDO::FETCH_ASSOC ( default );
$DBCtr->fetchmode = PDO::FETCH_BOTH;
$DBCtr->fetchmode = PDO::FETCH_BOUND;
$DBCtr->fetchmode = PDO::FETCH_CLASS;
$DBCtr->fetchmode = PDO::FETCH_INTO;
$DBCtr->fetchmode = PDO::FETCH_LAZY;
$DBCtr->fetchmode = PDO::FETCH_NAMED;
$DBCtr->fetchmode = PDO::FETCH_NUM;
$DBCtr->fetchmode = PDO::FETCH_OBJ;
$DBCtr->fetchmode = PDO::FETCH_PROPS_LATE;
// 設定編碼字元
$DBCtr->charset('utf-8'); //設定為utf-8編碼連線
// 設定為debug模式
$DBCtr->debug = TRUE; // 若設定Debug模式,若資料庫執行錯誤,會將錯誤訊息列出
// 設定為debug_sql模式
$DBCtr->debug_sql = TRUE; // 若設定Debug_SQL模式,則不會進行資料庫作業,只將您的SQL Code列出
$testDB = $DBCtr->get("student"); // 標準的多結果查詢(陣列)
// 依需求建立條件查詢
// 1. [ 建議 ] prepare 參數使用1 - 防SQL Injection 攻擊
$testDB = $DBCtr->where("id=?",array("1"))->orderby("id ASC, name DESC")->get("student",0,4);
// 2. [ 建議 ] prepare 參數使用2 - 防SQL Injection 攻擊
$testDB = $DBCtr->where("id=:id",array(":id"=>"1"))->orderby("id ASC, name DESC")->get("student",0,4);
// 3. [ 強烈不建議 ]
$testDB = $DBCtr->where("id='1'")->orderby("id ASC, name DESC")->get("student",0,4);
// 自訂的多結果查詢(陣列)
// 1. [ 建議 ] prepare 參數使用1 - 防SQL Injection 攻擊
$DBCtr->whereQuota(array("01" ,"Jimmy"));
$testDB = $DBCtr->query("SELECT * FROM test WHERE `id` = ? AND `name` = ?");
2. [ 建議 ] prepare 參數使用2 - 防SQL Injection 攻擊
$DBCtr->whereQuota(array(":id"=>"01" ,":name"=>"Jimmy"));
$testDB = $DBCtr->query("SELECT * FROM test WHERE `id` = :id AND `name` = name");
3. [ 強烈不建議 ]
$testDB = $DBCtr->query("SELECT * FROM student");
// 標準的新增查詢
$insertData = array( "name" => "張小華" );
//insert("資料表","新增資料(陣列[Key:Value])","是否回傳自動遞增ID")
$success = $DBCtr->insert("test",$insertData);
// 標準的新增查詢(回傳自動遞增ID)
//insert("資料表","新增資料(陣列[Key:Value])","是否回傳自動遞增ID")
$success = $DBCtr->insert("test",$insertData, TRUE);
// 自訂的SQL查詢
// 1. [ 建議 ] prepare 參數使用1 - 防SQL Injection 攻擊
$DBCtr->whereQuota(array("01" ,"Jimmy"));
$testDB = $DBCtr->query("INSERT INTO `test`( `user_id`, `user_pw`) VALUES (?, ?);",TRUE);
// 2. [ 建議 ] prepare 參數使用2 - 防SQL Injection 攻擊
$DBCtr->whereQuota(array("id"=>"01" ,"name"=>"Jimmy"));
$testDB = $DBCtr->query("INSERT INTO `test`( `user_id`, `user_pw`) VALUES (?, ?);",TRUE);
// 3. [ 強烈不建議 ]
$success = $DBCtr->query("INSERT INTO student (id, name, gender, addr) VALUES('104002','張大令','F','台灣')",TRUE);
// 標準的修改查詢
$updateData = array( "name" => "Jimmy" );
//update("資料表","修改資料(陣列[Key:Value])","修改條件值")
$success = $DBCtr->update("test",$updateData,"id='1'");
// 自訂的SQL查詢
//1. [ 建議 ] prepare 參數使用1 - 防SQL Injection 攻擊
$DBCtr->whereQuota(array("01" ,"Jimmy","01"));
$testDB = $DBCtr->query("UPDATE test SET user_id = ?,user_pw = ? WHERE user_no=?",TRUE);
//2. [ 建議 ] prepare 參數使用2 - 防SQL Injection 攻擊
$DBCtr->whereQuota(array("id"=>"01" ,"name"=>"Jimmy","no"=>"01"));
$testDB = $DBCtr->query("UPDATE test SET user_id = ?,user_pw = ? WHERE user_no=?",TRUE);
//3. [ 強烈不建議 ]
$success = $DBCtr->query("UPDATE test SET name = 'Jimmy' WHERE id='2'");
// 標準的刪除查詢
// 1. [ 建議 ] prepare 參數使用1 - 防SQL Injection 攻擊
$testDB = $DBCtr->delete("test","id=?",array("5"));
// 2. [ 建議 ] prepare 參數使用2 - 防SQL Injection 攻擊
$testDB = $DBCtr->delete("test","id=:id",array("id"=>"5"));
// 3. [ 強烈不建議 ]
$success = $DBCtr->delete("test","id='3'");
// 自訂的SQL查詢
// 1. [ 建議 ] prepare 參數使用1 - 防SQL Injection 攻擊
$DBCtr->whereQuota(array("01"));
$testDB = query("DELETE FROM test WHERE user_no=?",TRUE);
// 2. [ 建議 ] prepare 參數使用2 - 防SQL Injection 攻擊
$DBCtr->whereQuota(array("01"));
$testDB = query("DELETE FROM test WHERE user_no=?",TRUE);
// 3. [ 強烈不建議 ]
$success = $DBCtr->query("DELETE FROM test WHERE name = 'Jimmy' WHERE id='2'");