ezSQL :
下載 : ezSQL
新版本是2.05添加了很多支援,包括 CodeIgniter,MSSQL, PDO 等等
我之前也為 CodeIgniter 寫過一次,不過只支援 MySQL
看看使用樣本
其實也沒什麼難度,直接看原始碼即可,主要是程式設計的思想很好。
Example 1
----------------------------------------------------
// Select multiple records from the database and print them out..
$users = $db->get_results("SELECT name, email FROM users");
foreach ( $users as $user ) {
// Access data using object syntax
echo $user->name;
echo $user->email;
}
Example 2
----------------------------------------------------
// Get one row from the database and print it out..
$user = $db->get_row("SELECT name,email FROM users WHERE id = 2");
echo $user->name;
echo $user->email;
Example 3
----------------------------------------------------
// Get one variable from the database and print it out..
$var = $db->get_var("SELECT count(*) FROM users");
echo $var;
Example 4
----------------------------------------------------
// Insert into the database
$db->query("INSERT INTO users (id, name, email) VALUES (NULL,'justin','jv@foo.com')");
Example 5
----------------------------------------------------
// Update the database
$db->query("UPDATE users SET name = 'Justin' WHERE id = 2)");
Example 6
----------------------------------------------------
// Display last query and all associated results
$db->debug();
Example 7
----------------------------------------------------
// Display the structure and contents of any result(s) .. or any variable
$results = $db->get_results("SELECT name, email FROM users");
$db->vardump($results);
Example 8
----------------------------------------------------
// Get 'one column' (based on column index) and print it out..
$names = $db->get_col("SELECT name,email FROM users",0)
foreach ( $names as $name ) {
echo $name;
}
Example 9
----------------------------------------------------
// Same as above ‘but quicker'
foreach ( $db->get_col("SELECT name,email FROM users",0) as $name ) {
echo $name;
}
Example 10
----------------------------------------------------
// Map out the full schema of any given database and print it out..
$db->select("my_database");
foreach ( $db->get_col("SHOW TABLES",0) as $table_name ) {
$db->debug();
$db->get_results("DESC $table_name");
}
$db->debug();
EZSQL類介紹:
ezsql是一個小型的快速的資料庫操作類,可以讓你很容易地用PHP操作各種資料庫( MySQL、oracle8/9 、interbase、FireBird、PostgreSQL、MS-SQL、sqlite、sqlite C++)。
在你的指令碼開頭是要包含一個一個PHP檔案。然後,你就可以使用更小、更容易的一套ezsql函數來代替標準的PHP資料庫函數。
它會自動緩衝的查詢結果,提供了一系列簡單的函數操作及擴充,並且沒有造成額外的伺服器開銷
它具有優良的調試功能,使你快速的判斷SQL語句的執行過程
ezsql函數可以返回的結果是對象,關聯陣列,或數值數組
它可以大大縮短開發時間,並在大多數情況下,將簡化您的代碼,讓其跑得更快,以及很容易調試和最佳化您的資料庫查詢語句。
這是一個小類,在你的網站上並不會增加很大的開銷。
類中有以下的方法:
- $db->get_results – 從資料庫中讀取資料集 (or 之前緩衝的資料集)
- $db->get_row — 從資料庫中讀取一條資料 (or 之前緩衝的資料)
- $db->get_col – 從資料庫中讀取一列指定資料集 (or 之前緩衝的資料集)
- $db->get_var — 從資料庫資料集中讀取一個值 (or 之前緩衝的資料)
- $db->query — 執行一條sql語句(如果有資料,就緩衝起來)
- $db->debug – 列印最後執行的sql語句與返回的結果(如果有結果)
- $db->vardump – 列印變數的結構及內容
- $db->select — 選擇一個新資料庫
- $db->get_col_info – 擷取列的資訊
- $db->donation – 捐錢給作者用的
- $db->escape – 格式化插入資料庫的字串,eg:mysql_escape_string(stripslashes($str))
- $db->flush – 清除緩衝
- $db->get_cache – 換取緩衝
- $db->hide_errors – 隱藏錯誤
- $db->register_error – 註冊錯誤
- $db->show_errors – 顯示錯誤
- $db->store_cache – 儲存到緩衝
- $db->sysdate – 擷取系統時間
- $db = new db — 建立一個新db對象.
wordpress對ezsql進行了修改,同時也使其僅適用於mysql
wordpress修改後的一些類操作也就是函數如下:
function query($query)
這個函數是 WPDB 最基本的函數,$query 為 SQL 陳述式,提交給資料庫查詢,結果分二種情況:
1. 如果是 “insert|delete|update|replace”, 返回受影響行數,在 “insert|replace”的情況下,用 $this->insert_id 記錄新插入的ID。
2. 如果是 “select”,用 $this->last_result 記下查詢結果集,返回查詢到的記錄行數。
function escape($string)
使用反斜線引用字串,即使用魔術引號。
function insert($table, $data)
這是插入記錄函數,第一個參數是表的欄位數組,第二個是資料數組。插入資料返回1,否則為0。
function update($table, $data, $where)
這是更新紀錄函數,第一個參數是表的欄位數組,第二個是資料數組,第三個是條件數組,它是一個 nane array。更新了為1,否則為0。
function get_var($query=null, $x = 0, $y = 0)
如果 $query 不為空白,首先執行查詢,然後返回第 X 列 Y 行的值。
function get_row($query = null, $output = OBJECT, $y = 0)
返回一行,$outpu 指定返回的類型,可以是 ARRAY_A,ARRAY_N 或者 OBJECT。$y 指定第幾行。
function get_col($query = null , $x = 0)
返回一列,$x 指定第幾列。
function get_results($query = null, $output = OBJECT)
返回查詢結果集,可以以 ARRAY_A,ARRAY_N 或者 OBJECT 三種方式返回。
function get_col_info($info_type = ‘name', $col_offset = -1)
返回欄位資訊。
其他還有一些函數,這裡不詳細講了。另外還有兩個全域變數,SAVEQUERIES 和 WP_DEBUG,第一個是,可以讓你把訪問頁面執行的查詢把儲存到 $this->queries 這個數組中,以後調試的時候使用,WP_DEBUG 則讓你把錯誤輸出。這兩個預設都沒有開啟,你測試的時候可以在 wp_config.php 中將其開啟。