ホームページ > バックエンド開発 > PHPチュートリアル > PDO ベースのデータベース操作クラス (新規) PDO トランザクション インスタンス_PHP チュートリアル

PDO ベースのデータベース操作クラス (新規) PDO トランザクション インスタンス_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:27:48
オリジナル
911 人が閲覧しました

コードをコピーします コードは次のとおりです:

/*
* 著者: Hu Rui
* 日付: 2011/03/19
* 電子メール: hooray0905@foxmail.com
*
* 20110319
* 一般的なデータベース操作 (追加、削除、変更、クエリ、単一レコード、複数レコードの取得、最後に挿入されたレコード ID の返し、操作レコードの行数の返しなど)
* 20110630
* 全体的な変更メソッド、いくつかのパラメータをマージします
* 標準コード、1 つ メソッド内の return ステートメントは 1 つだけです
*/
/*
パラメータの説明
int $debug デバッグを有効にするかどうか、有効にした場合は SQL ステートメントが出力されます
int $モード 0 配列を返します
1 単一レコードを返します
2 行数を返します
string $table データベーステーブル
string $fields クエリ対象のデータベースフィールド、空にすることができます、デフォルトはすべてを検索します
string $sqlwhere クエリ条件、空にすることができます
string $orderby 並べ替え、空にすることができます、デフォルトは ID 逆順です
*/
function hrSelect ($debug, $mode, $table, $fields="*", $sqlwhere="" , $orderby="id desc"){
global $pdo;
if($debug){
if($mode = = 2){
echo "select count(*) from $table where 1=1 $sqlwhere order by $orderby";
}elseif($mode == 1){
echo "1= 1 $sqlwhere の $table から $fields を選択";
}else{
echo "1=1 の $table から $fields を選択$sqlwhere order by $orderby";
}
exit;
}else{
if($mode == 2){
$rs = $pdo->query("select count(*) from $table where 1= 1 $sqlwhere order by $orderby");
$return = $rs->fetchColumn();
}elseif($ mode == 1){
$rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere");
$return = $rs->fetch();
}else{
$rs = $pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
$return = $rs->fetchAll();
}
return $return ;
}
}
/*
パラメータの説明
int $debug デバッグを有効にするかどうか (有効な場合) 、SQL ステートメントが出力されます
int $mode 0 デフォルトの挿入、戻り情報なし
1 実行エントリの数を返します
2 最後に挿入されたレコードの ID を返します
string $table データベーステーブル
string $fields 必要なフィールドデータベースに挿入される
string $values データベースに挿入する必要がある情報は、$fields と 1 対 1 で対応する必要があります
*/
function hrInsert($debug, $mode, $table, $fields , $values){
global $pdo;
if($debug){
echo "$table ($fields) の値に挿入"
}else{
if($mode ==) 2 ){
$return = $pdo->lastInsertId("$table ($fields) の値 ($values) に挿入");
}elseif($mode == 1){
$return = $pdo -> exec("$table ($fields) の値に挿入 ($values)");
}else{
$pdo->query("$table ($fields) の値に挿入 ($値)");
exit ;
}
return $return;
}
}
/*
パラメータの説明
int $debug デバッグを有効にするかどうか、有効にした場合、SQL ステートメントが出力されます
int $mode 0 デフォルトの更新、戻り情報なし
1 実行エントリの数を返します
string $table データベース テーブル
string $set 更新する必要があるフィールドと内容、形式: a='abc',b=2,c='2010-10- 10 10:10:10'
string $sqlwhere 条件を変更します。空にすることができます
*/
function hrUpdate($debug, $mode, $table, $set, $sqlwhere=""){
global $pdo; if($debug){
echo "$table set $set where 1 =1 $sqlwhere を更新します。"
}else{
if($mode==1){
$return = $pdo->exec; ("update $table set $set where 1=1 $sqlwhere");
}else{
$pdo->query("update $table set $set where 1=1 $sqlwhere");
return $return;
}
}
/*
パラメータの説明
int $debug デバッグを有効にするかどうか、有効にした場合、SQL ステートメントが出力されます
int $mode 0 デフォルトは削除、戻り情報なし
1 の数を返します実行エントリ
string $table データベーステーブル
string $sqlwhere 削除条件、空にすることも可能
*/
function hrDelete ($debug, $mode, $table, $sqlwhere=""){
global $pdo( $debug){
echo "$table where 1=1 $sqlwhere から削除";
}else {
if($mode == 1){
$return = $pdo->exec("から削除$table where 1=1 $sqlwhere");
}else{
$pdo->query("delete from $table where 1=1 $sqlwhere");
exit;
}
return $return;
}
}
?>


別のコードは、データベース操作クラスのトランザクション インスタンスに基づいています:



コードをコピーします
コードは次のとおりです:

/*
データベース操作テーブルのタイプは InnoDB である必要があることに注意してください。他のタイプはトランザクションをサポートしません
PDO トランザクション メカニズム
$pdo->beginTransaction(); --トランザクションを有効にする
$pdo->commit(); -- トランザクションの終了
$pdo->rollBack(); --ロールバック操作の例

、トランザクション内の DB 操作が中断されると、ロールバックが実行され、例外情報が返されます。投げられた。
*/
try{
$pdo->beginTransaction();
hrInsert(0,1,"class","name,parentid","'god',0"); //正常に実行可能
hrInsert ( 0,0,0,"tb_searchlog","userid,code","4"); //エラー
$pdo->commit();
}catch(Exception $e){
$pdo-> rollBack ();
echo "失敗しました: " . $e->getMessage();

コードのダウンロード: クリックしてダウンロードします

http://www.bkjia.com/PHPjc/323700.html

tru​​ehttp://www.bkjia.com/PHPjc/323700.html技術記事次のようにコードをコピーします: ?php /* * 著者: Hu Rui * 日付: 2011/03/19 * 電子メール: hooray0905@foxmail.com * * 20110319 * 一般的なデータベース操作: 追加、削除、変更、クエリ、単一レコードを取得します...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート