<?php
class
MyPDO
{
protected
static
$_instance
= null;
protected
$dbName
=
''
;
protected
$dsn
;
protected
$dbh
;
private
function
__construct(
$dbHost
,
$dbUser
,
$dbPasswd
,
$dbName
,
$dbCharset
)
{
try
{
$this
->dsn =
'mysql:host='
.
$dbHost
.
';dbname='
.
$dbName
;
$this
->dbh =
new
PDO(
$this
->dsn,
$dbUser
,
$dbPasswd
);
$this
->dbh->
exec
(
'SET character_set_connection='
.
$dbCharset
.
', character_set_results='
.
$dbCharset
.
', character_set_client=binary'
);
} <a href=
"\"/tags.php/catch/\""
target=
"\"_blank\""
>
catch
</a> (PDOException
$e
) {
$this
->outputError(
$e
->getMessage());
}
}
private
function
__clone() {}
public
static
function
getInstance(
$dbHost
,
$dbUser
,
$dbPasswd
,
$dbName
,
$dbCharset
)
{
if
(self::
$_instance
=== null) {
self::
$_instance
=
new
self(
$dbHost
,
$dbUser
,
$dbPasswd
,
$dbName
,
$dbCharset
);
}
return
self::
$_instance
;
}
public
function
query(
$strSql
,
$queryMode
=
'All'
,
$debug
= false)
{
if
(
$debug
=== true)
$this
->debug(
$strSql
);
$recordset
=
$this
->dbh->query(
$strSql
);
$this
->getPDOError();
if
(
$recordset
) {
$recordset
->setFetchMode(PDO::FETCH_ASSOC);
if
(
$queryMode
==
'All'
) {
$result
=
$recordset
->fetchAll();
}
elseif
(
$queryMode
==
'Row'
) {
$result
=
$recordset
->fetch();
}
}
else
{
$result
= null;
}
return
$result
;
}
public
function
update(
$table
,
$arrayDataValue
,
$where
=
''
,
$debug
= false)
{
$this
->checkFields(
$table
,
$arrayDataValue
);
if
(
$where
) {
$strSql
=
''
;
<a href=
"\"/tags.php/foreach/\""
target=
"\"_blank\""
>
foreach
</a> (
$arrayDataValue
as
$key
=>
$value
) {
$strSql
.=
", `$key`='$value'"
;
}
$strSql
= <a href=
"\"/tags.php/substr/\""
target=
"\"_blank\""
>
substr
</a>(
$strSql
, 1);
$strSql
=
"UPDATE `$table` SET $strSql WHERE $where"
;
}
else
{
$strSql
=
"REPLACE INTO `$table` (`"
.implode(
'`,`'
,
array_keys
(
$arrayDataValue
)).
"`) VALUES ('"
.implode(
"','"
,
$arrayDataValue
).
"')"
;
}
if
(
$debug
=== true)
$this
->debug(
$strSql
);
$result
=
$this
->dbh->
exec
(
$strSql
);
$this
->getPDOError();
return
$result
;
}
public
function
insert(
$table
,
$arrayDataValue
,
$debug
= false)
{
$this
->checkFields(
$table
,
$arrayDataValue
);
$strSql
=
"INSERT INTO `$table` (`"
.implode(
'`,`'
,
array_keys
(
$arrayDataValue
)).
"`) VALUES ('"
.implode(
"','"
,
$arrayDataValue
).
"')"
;
if
(
$debug
=== true)
$this
->debug(
$strSql
);
$result
=
$this
->dbh->
exec
(
$strSql
);
$this
->getPDOError();
return
$result
;
}
public
function
replace(
$table
,
$arrayDataValue
,
$debug
= false)
{
$this
->checkFields(
$table
,
$arrayDataValue
);
$strSql
=
"REPLACE INTO `$table`(`"
.implode(
'`,`'
,
array_keys
(
$arrayDataValue
)).
"`) VALUES ('"
.implode(
"','"
,
$arrayDataValue
).
"')"
;
if
(
$debug
=== true)
$this
->debug(
$strSql
);
$result
=
$this
->dbh->
exec
(
$strSql
);
$this
->getPDOError();
return
$result
;
}
请发表评论