PHP PDO優(yōu)化數(shù)據(jù)庫操作類 多數(shù)據(jù)庫驅(qū)動類
/**
* Description of pdo
*
* @author Administrator
*/
class
ZcPdo {
public
$dbh
=
""
;
//全局連接Object;
//public $sth = ""; //預(yù)處理參數(shù)
private
$dsn
=
""
;
private
$user
=
""
;
private
$password
=
""
;
public
$returnAy
=
array
(
'errcode'
=>
''
,
'errmsg'
=>
''
);
//構(gòu)造函數(shù) - 初始化連接
public
function
__construct(
$dsn
,
$user
,
$password
) {
$this
->dsn =
$dsn
;
$this
->user =
$user
;
$this
->password =
$password
;
$this
->pdoConnect();
}
private
function
pdoConnect(){
try
{
$this
->dbh =
new
PDO(
$this
->dsn,
$this
->user,
$this
->password);
return
$this
->dbh;
}
catch
(PDOException
$e
) {
echo
'Connection failed: '
.
$e
->getMessage();
exit
();
}
}
//設(shè)置PDO參數(shù)
public
function
zcAttribute(
$attribute
,
$value
){
$this
->dbh->setAttribute(
$attribute
,
$value
);
}
public
function
zcLastId(
$name
= NULL){
return
$this
->dbh->lastInsertId(
$name
);
}
//數(shù)據(jù)庫單語句執(zhí)行操作
public
function
zcExec(
$param
) {
try
{
$rows
=
$this
->dbh->
exec
(
$param
);
//影響行數(shù)
return
$this
->zcLog(TRUE,
$rows
);
}
catch
(PDOException
$e
) {
return
$this
->zcLog(FALSE,
$e
->getMessage());
}
}
//格式化數(shù)據(jù)
public
function
zcQuote(
$string
){
return
$this
->dbh->quote(
$string
);
}
//批量處理格式化數(shù)據(jù)
public
function
zcBatchQuote(
$data
){
$result
=
""
;
if
(!
empty
(
$data
) && (
is_array
(
$data
) ||
is_object
(
$data
))){
foreach
(
$data
as
$key
=>
$value
){
if
(!
empty
(
$value
) && (
is_array
(
$value
) ||
is_object
(
$value
))){
$result
[
$key
] =
$this
->zcBatchQuote(
$value
);
}
else
{
$result
[
$key
] =
$this
->zcQuote(
$value
);
}
}
}
else
{
$result
=
$this
->zcQuote(
$data
);
}
return
$result
;
}
//數(shù)據(jù)庫預(yù)處理操作 - 獲取全部數(shù)據(jù)
public
function
zcFetchAll(
$statement
,
$parameter
= NULL ,
$type
= PDO::FETCH_ASSOC){
try
{
$sth
=
$this
->dbh->prepare(
$statement
);
//$sth->execute($parameter);
$sth
->execute(
$this
->zcBatchQuote(
$parameter
));
$result
=
$sth
->fetchAll(
$type
);
if
(!
empty
(
$result
) &&
is_array
(
$result
)){
return
$this
->zcLog(TRUE,
$result
);
}
else
{
return
$this
->zcLog(TRUE, NULL);
}
}
catch
(PDOException
$e
) {
return
$this
->zcLog(FALSE,
$e
->getMessage());
}
}
//數(shù)據(jù)庫預(yù)處理操作 - 獲取一行數(shù)據(jù)
public
function
zcFetchRow(
$statement
,
$parameter
= NULL ,
$type
= PDO::FETCH_ASSOC){
try
{
$sth
=
$this
->dbh->prepare(
$statement
);
$sth
->execute(
$this
->zcBatchQuote(
$parameter
));
$result
=
$sth
->fetch(
$type
);
if
(!
empty
(
$result
) &&
is_array
(
$result
)){
return
$this
->zcLog(TRUE,
$result
);
}
else
{
return
$this
->zcLog(TRUE, NULL);
}
}
catch
(PDOException
$e
) {
return
$this
->zcLog(FALSE,
$e
->getMessage());
}
}
//數(shù)據(jù)庫預(yù)處理操作 - 獲取一個數(shù)據(jù)
public
function
zcFetchOne(
$statement
,
$parameter
= NULL){
try
{
$sth
=
$this
->dbh->prepare(
$statement
);
$sth
->execute(
$this
->zcBatchQuote(
$parameter
));
$result
=
$sth
->fetch(PDO::FETCH_NUM);
if
(!
empty
(
$result
) &&
is_array
(
$result
)){
return
$this
->zcLog(TRUE,
$result
[0]);
}
else
{
return
$this
->zcLog(TRUE, NULL);
}
}
catch
(PDOException
$e
) {
return
$this
->zcLog(FALSE,
$e
->getMessage());
}
}
//開始事務(wù)
public
function
zcBegin(){
$this
->dbh->beginTransaction();
}
//提交事務(wù)
public
function
zcCommit(){
$this
->dbh->commit();
}
//回滾事務(wù)
public
function
zcRollBack(){
$this
->dbh->rollBack();
}
//預(yù)處理事務(wù)執(zhí)行語句
public
function
zcPtmTstQuery(
$statement
,
$parameter
= NULL){
try
{
$this
->zcBegin();
$result
=
$this
->dbh->prepare(
$statement
)->execute(
$parameter
);
$this
->zcCommit();
return
$this
->zcLog(TRUE,
$result
);
}
catch
(PDOException
$e
) {
$this
->zcRollBack();
return
$this
->zcLog(FALSE,
$e
->getMessage());
}
}
//預(yù)處理執(zhí)行語句
public
function
zcPtmQuery(
$statement
,
$parameter
= NULL){
try
{
$result
=
$this
->dbh->prepare(
$statement
)->execute(
$parameter
);
return
$this
->zcLog(TRUE,
$result
);
}
catch
(PDOException
$e
) {
return
$this
->zcLog(FALSE,
$e
->getMessage());
}
}
//Query執(zhí)行
public
function
zcQuery(
$statement
,
$type
= PDO::FETCH_ASSOC){
try
{
$result
=
$this
->dbh->query(
$statement
,
$type
);
return
$this
->zcLog(TRUE,
$result
);
}
catch
(PDOException
$e
) {
return
$this
->zcLog(FALSE,
$e
->getMessage());
}
}
//日志LOG
public
function
zcLog(
$errcode
,
$errmsg
){
$this
->returnAy =
array
();
$this
->returnAy[
'errcode'
] =
$errcode
;
$this
->returnAy[
'errmsg'
] =
$errmsg
;
$this
->returnAy[
'errtime'
] =
date
(
"Y-m-d H:i:s"
,time());
return
$this
->returnAy;
}
}
推薦文章
2025-01-18
2024-11-28
2024-11-09
2024-10-25
2024-06-25
2024-01-04
2023-11-06
2023-10-30
2023-10-13
2023-10-10
穩(wěn)定
產(chǎn)品高可用性高并發(fā)貼心
項目群及時溝通專業(yè)
產(chǎn)品經(jīng)理1v1支持快速
MVP模式小步快跑承諾
我們選擇聲譽堅持
10年專注高端品質(zhì)開發(fā)聯(lián)系我們
友情鏈接: