PHP資料庫基於PDO操作類(mysql)

2022-08-21 07:51:12 字數 4749 閱讀 8197

這是網上找的關於mysql的操作類,非常適合初學者使用

<?php

class

mysql

}/**

* 連線資料庫的方法

*/protected

function

_connect() catch (pdoexception $e

)

$dbh->exec('set names utf8');

self::$_dbh = $dbh

; }

/**

* 欄位和表名新增 `符號

* 保證指令中使用關鍵字不出錯 針對mysql

* @param string $value

* @return string

*/protected

function _addchar($value

) elseif (false === strpos($value,'`') )

return

$value

; }

/**

* 取得資料表的字段資訊

* @param string $tbname 表名

* @return array

*/protected

function _tbfields($tbname

)

return

$ret

; }

/**

* 過濾並格式化資料表字段

* @param string $tbname 資料表名

* @param array $data post提交資料

* @return array $newdata

*/protected

function _dataformat($tbname,$data

) elseif (is_float($val

))

elseif (preg_match('/^\(\w*(\+|\-|\*|\/)?\w*\)$/i', $val

))

elseif (is_string($val

))

$ret[$key] = $val

; }

}return

$ret

; }

/*** 執行查詢 主要針對 select, show 等指令

* @param string $sql sql指令

* @return mixed

*/protected

function _doquery($sql='')

/**

* 執行語句 針對 insert, update 以及delete,exec結果返回受影響的行數

* @param string $sql sql指令

* @return integer

*/protected

function _doexec($sql='')

/**

* 執行sql語句,自動判斷進行查詢或者執行操作

* @param string $sql sql指令

* @return mixed

*/public

function dosql($sql='')

else

}/**

* 獲取最近一次查詢的sql語句

* @return string 執行的sql

*/public

function

getlastsql()

/*** 插入方法

* @param string $tbname 操作的資料表名

* @param array $data 欄位-值的一維陣列

* @return int 受影響的行數

*/public

function insert($tbname,array

$data

) /**

* 刪除方法

* @param string $tbname 操作的資料表名

* @return int 受影響的行數

*/public

function delete($tbname

) /**

* 更新函式

* @param string $tbname 操作的資料表名

* @param array $data 引數陣列

* @return int 受影響的行數

*/public

function update($tbname,array

$data

)

$valstr = implode(',', $valarr

);

$sql = "update ".trim($tbname)." set ".trim($valstr)." ".trim($this->_where);

return

$this->_doexec($sql

); }

/*** 查詢函式

* @param string $tbname 操作的資料表名

* @return array 結果集

*/public

function select($tbname='')

/*** @param mixed $option 組合條件的二維陣列,例:$option['field1'] = array(1,'=>','or')

* @return $this

*/public

function where($option

)

elseif (is_array($option

))

else

$this->_where .= isset($mark) ? $logic.$condition : $condition

;

$mark = 1;}}

return

$this

; }

/*** 設定排序

* @param mixed $option 排序條件陣列 例:array('sort'=>'desc')

* @return $this

*/public

function order($option

)

elseif (is_array($option

)) }

return

$this

; }

/*** 設定查詢行數及頁數

* @param int $page pagesize不為空時為頁數,否則為行數

* @param int $pagesize 為空則函式設定取出行數,不為空則設定取出行數及頁數

* @return $this

*/public

function limit($page,$pagesize=null

)

else

return

$this

; }

/*** 設定查詢字段

* @param mixed $field 字段陣列

* @return $this

*/public

function field($field

)

$nfield = array_map(array($this,'_addchar'), $field

);

$this->_field = implode(',', $nfield

);

return

$this

; }

/*** 清理標記函式

*/protected

function

_clear()

/*** 手動清理標記

* @return $this

*/public

function

clearkey()

/*** 啟動事務

* @return void

*/public

function

starttrans()

/**

* 用於非自動提交狀態下面的查詢提交

* @return boolen

*/public

function

commit()

return

$result

; }

/**

* 事務回滾

* @return boolen

*/public

function

rollback()

return

$result

; }

/*** 關閉連線

* php 在指令碼結束時會自動關閉連線。

*/public

function

close()

}

pdo資料庫操作類

pdo,有不侷限資料庫,和防止sql注入等很多優點,也是php官方推薦的方式,所以花點時間寫個pdo資料庫操作類 class pdox catch pdoexception e 關閉鏈結 public function closeconnect 轉義字串 param string return bo...

PDO資料庫操作

注意 使用pdo需要配置php.ini檔案 例子 查詢資料 pdo連線資料庫 pdo new pdo mysql host localhost dbname chatroom root 執行sql語句 res pdo query select from chat user 處理結果集 data re...

PDO資料庫抽象類庫的操作

pdo簡單介紹 背景 隨著php使用的廣泛,使用不同資料庫也是十分常見的。php需要支援更多的資料庫連線介面,如果只是通過單一的介面針對單一的資料庫進行編寫程式,這很大程度上提公升了php的複雜度和學習門檻。pdo的出現就是為了解決這個問題。pdo pdo是php data object的縮寫,為p...