コードをコピーします コードは次のとおりです:
/*
* 著者: 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->beginTransaction(); --トランザクションを開始します$pdo ->commit(); --トランザクションを終了します$pdo-> ;rollBack(); --ロールバック操作
例として、try/catch を使用して db 操作をラップします。トランザクション内の 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();
コードのダウンロード: クリックしてダウンロード
上記では、PDO に基づく新しいデータベース操作クラスである pcskys_windows7loader と PDO トランザクション インスタンスを紹介します。これには、pcskys_windows7loader の内容が含まれており、PHP チュートリアルに興味のある友人に役立つことを願っています。