これは私自身が書いたクラスです。どなたでも議論したりガイドしたりできます。いくつかの使用法: //データベース オブジェクトを宣言する $Conn = new Mysql;ユーザー名、データベース パスワード、データベース名、データベース エンコーディング、データベース テーブル プレフィックス [空にすることもできます]);
上記のコードはすでにこのクラス ファイルをロードし、いくつかのデータベース接続パラメーターを初期化しています。 以下はいくつかの基本的なメソッド関数です: 1. $Conn -> Table(); データテーブルを選択します。パラメータはデータテーブルの名前です 2. $Conn -> Field(); フィールドを選択します。名前、複数 カンマで区切ります。このメソッドが呼び出されない場合は、すべてが返されます 3. $Conn -> Where(); Sql Where サブステートメント、条件に基づいてフィルターします 4. ; SQL ソート 5 , $Conn -> Page (int); パラメータは正の整数です。このメソッドが呼び出された場合、レコードはページ単位で表示されます 6. $Conn -> Select (ブール値) ; クエリを実行し、クエリ結果を返します (存在しない場合は false を返します)。省略した場合、返される配列には数値要素が含まれます。 7、$Conn -> Del(); レコードを削除します 8、$ Conn -> Edit(array()); レコードを変更します。パラメータは 1 次元配列、配列キーはフィールド名です。配列の値はフィールドの値です 9 $Conn -> Into(array()); レコードを追加します。パラメータは 1 次元の配列、配列のキーはフィールド名、配列の値はフィールドです価値。
上記のメソッドは連続して呼び出すことができます。例:
$Rult = $Conn -> Table('user') -> Select(); //クエリはユーザー テーブル内のすべてのレコードを返します $Rult = $ Conn -> Table( 'user') -> Page(20) -> Select();//クエリは user テーブル内のすべてのレコードを返し、それらをページごとに 20 レコードずつ表示します
;メソッド呼び出しや裏技もたくさんありますので、時間があるときに詳しく説明します。
- /*
- データベース操作クラス
- 操作方法: オブジェクトに面する
- 作成時期: 2013-3-10
- 現在のバージョン: BqhMysql (mysqli) 1.0.1
- ソフトウェア作者: Sad Song
- お問い合わせQQ: 36975
- 連絡先番号: 18907975647
- 電子メール: admin@q128.com
- 連絡先住所: 江西省贛州市石城県小松鎮
- 郵便番号: 342706
- */
- class Mysql{
- private $LocalHost = ' localhost';
- private $LoaclUser = 'root';
- private $LocalPass = '123456';
- private $LocalBase = 'jiangxibaiyi';
- private $LocalCode = 'UTF8';
- private $PreFix;
- private $Conn;
- private $Start = 0;
- private $Error = false; //データベースの接続ステータス、false は接続されていない、または接続が異常であることを意味します
- public $Err = true //SQL の実行結果
- private $Table;
- private $Field = '*';
- private $Where = '';
- private $Order = '';
-
- private $PageSize = 0; //ページ表示->ページごとのアイテム数、0 はページング表示なしを意味します
- private $ PageCount = 1; //ページ表示 -> 合計ページ数
- private $PageNum = 1; //ページ表示 -> 合計ページ数
- private $PageNo = 1; ->現在のページとは何ですか
- private $PageKey = 'page'; //ページ URL パラメーター キー
- private $PageStart = 0; //ページ表示->返される現在の項目
-
-
- private $Select;
- private $Rest;
-
- private $Result = false;//結果セット
-
- public $FormArray = array();
-
- public $Instr_ID = 0;
- private $j = 0;
-
-
- public function Parameter($ Loca、$Root、$Pass、$Base、$Code、$PreFix = ''){
- $this->LoaclUser = $Root;
- $this->LocalBase = $Base;
- $this->LocalCode = $Code;
- $this->LocalHost = $Loca;
- $this->LocalPass = $Pass;
- $this->PreFix = $PreFix;
- return $this;
- }
- プライベート関数 Connection( $ Sql ){
- !function_exists(mysqli_connect ) ? die('クエリが失敗しました。mysqli 拡張機能をロードできません') : null;
- $this->Conn = @new mysqli( $this->LocalHost, $this-> LoaclUser, $this->LocalPass, $this->LocalBase);
- $this->Error = mysqli_connect_errno() == 0 ? true : false;
- !$this->Error die('データベース接続 ?エラー。データベース接続パラメータを確認してください') : null;
- $this->Conn->query('SET NAMES ' . $this->LocalCode);
- $this->Rest = $this-> ;Conn->query($Sql) ;
- $this->Err = mysqli_error($this->Conn);
- $this->Instr_ID = mysqli_insert_id($this->Conn);
- $this ->Rest->free_result;
- $this->Conn->close;
- $this -> FormArray = '';
- return $this;
- }
-
- public function null(){
- $this ->PageSize = 0;
- // $this->PageCount = 1;
- $this->PageStart = 1;
- $this->フィールド = ' * ';
- $this->Select = ' ';
- unset($this->Table, $this->Where,$this->Order, $this->Result);
- }
-
- public function Table( $TableName ) {//データ テーブル
- $this -> null();
- $this->Table = '`' . $TableName . '`';
- return $this;
- }
- public function Field( $ Array = '*' ) {//data フィールド
- !empty( $this->Field ) ? $this->Field = '' : null;
- $Array =explode(',', $Array);
- foreach ( $Array as $field ) {
- $this->Field .= !$this->Start ? '`' : ', `' . $this->Start++;
- }
- $this->Start = 0;
- return $this;
- }
-
- public function Where( $Where ) {//Condition
- $this->Where = ' where ' .$Where;
- return $this; }
-
- public function Order( $Order ) {//Sort
- $this->Order = ' order by ' . $Order;
- return $this;
- }
-
- public function pk( $key ) {//ページング URL パラメーター key
- $this->PageKey = $key;
- return $this;
- }
-
- public function Page( $PageSize ) {///ページング
- $this-> PageSize = $PageSize;
- $this->gt;PageNo = $this->gt;get( $this->PageKey );
- $this->PageNo = empty( $this->PageNo ) || $this->PageNo ) || ! is_numeric( $this->PageNo 1 ? 1 : $this->PageNo;
- return $this;
- }
- function post( $Key, $Filter = true ){
- return $Filter ?strip_tags($_POST[$Key]) : $_POST[$Key];
- }
-
- public function get( $Key, $Filter = true ) {
- $Filter を返す ?strip_tags($_GET [$Key]) : $_GET[$Key];
- }
-
- パブリック関数 Sel(){
- $this->Select = 'Select ' 。 $this->フィールド 。 ' から ' 。 $this->テーブル 。 $this->どこ . $this->Order;
- $this->Connection( $this->Select );
- if ( $this->Rest->num_rows ) {
- while ( $Rs = $this->Rest ->fetch_assoc() ) {
- $this->Result[] = $Rs;
- }
- }
- $DataBase = $this->Result;
- return empty($DataBase) ? false : $DataBase;
- }
-
- public function querys( $Sql = '', $Type = 'not', $biao = false ) {
- $this->Select = $Sql;
- $this->Connection ( $this->Select );
- if ( $this->Rest->num_rows ) {
- if ( !$biao ) {
- while ( $Rs = $this->Rest->fetch_array() ) {
- $this->Result[] = !preg_match('/^d+$/i', $Type) ? $Rs : $Rs[ $Type ];
- }
- } else {
- while ( $Rs = $this->gt;Rest->fetch_assoc() ) {
- $this->Result[] = $Rs;
- }
- }
- }
- $DataBase = $this->Result;
- return empty($DataBase) ? false : $DataBase;
-
- }
-
- public functionexecutes( $Sql = '' ){
- $this->Connection( $Sql );
- return $this->Rest;
- }
-
-
- public 関数が存在します( $T = '', $F = '', $W = ''){
- if ( empty( $F ) ) { return 0; }
- $cmd = 空( $W ) ? ' sum(' . $F . ') を `baiyinum` として `' から選択します。 $this->PreFix 。 $T .'`' : 'sum(' . $F . ') を `baiyinum` として `' から選択します。 $this->PreFix 。 $T .'' ここで ' . $W;
- $this->Connection( $cmd );
- unset( $T, $F, $W, $cmd );
- $Rel = $this->>Rest->fetch_array();
- return Round( $Rel['baiyinum'], 2 );
- }
-
-
- public function ExistsTo( $Bili = 10000, $T = '', $F = '', $W = ''){
- if ( empty ( $F ) ) { 0 を返します。 }
- $cmd = 空( $W ) ? ' sum(' . $F . ') を `baiyinum` として `' から選択します。 $this->PreFix 。 $T .'`' : 'sum(' . $F . ') を `baiyinum` として `' から選択します。 $this->PreFix 。 $T .'' ここで ' . $W;
- $this->Connection( $cmd );
- unset( $T, $F, $W, $cmd );
- $Rel = $this->>Rest->fetch_array();
- return round( $Rel['baiyinum'] * $Bili );
- }
-
-
- public function Select( $Type = true, $ListNum = 1 ){ // 返记录(数组形式、返条数)
- $this- >選択 = '選択' 。 $this->フィールド 。 ' から ' 。 $this->テーブル 。 $this->どこ . $this->Order;
- if ( is_numeric( $ListNum ) ) {
- if ( $this->PageSize > 0 ) {
- $this->Connection( $this->Select );//実行查询
- $this->PageCount = $this->Rest->num_rows;//取得录总数
- $this->PageNum = ceil($this->PageCount / $this->PageSize); //共通共有量
- $this->PageNo = $this->PageNo > $this->ページ番号 ? $this->PageNum : $this->PageNo;
- $this->PageStart = ( $this->PageNo - 1 ) * $this->PageSize; //当前从第几条开始返
- $this->Select .= 'limit' 。 $this->PageStart 。 ', ' .$this->PageSize; // 重新构造句sql语
- } else {
- $this->Select .= 'limit' . $ListNum; // 重新构造句sql语
- }
- } else {
- $this->Select .= ' 制限 1'; // 重新构造句sql语
- }
- //echo $this->Select;
- $this->Connection( $this->Select );// 再実行查询
- if ( $this->Rest- >num_rows ) {//如果记录存在
- if ( $Type ) {
- while ( $Rs = $this->Rest->fetch_array() ) {
- $this->Result[] = $Rs;
- }
- }else{
- while ( $Rs = $this->Rest->fetch_assoc() ) {
- $this->Result[] = $Rs;
- }
- }
- }
- if ( ( $ ListNum == 1 または !is_numeric( $ListNum ) ) && !$this->PageSize) { $this->Result = $this->Result[0]; }
- $DataBase = $this->Result;
- return empty($DataBase) ? false : $DataBase;
- }
-
- public function Num() { // 戻り记录总数
- $this->Select = 'Select ' . $this->フィールド 。 ' から ' 。 $this->テーブル 。 $this->どこ . $this->Order;
- $this->Connection( $this->Select );//実行查询
- return $this->Rest->num_rows;// 取得记录总数
- }
-
- public function PageNav($NumNav = false ) { //分页
- $Action = $this -> get('action');
- !empty( $Action ) or $Action = 'index';
- $Module = $this -> get('module');
- !empty( $Module ) or $Module = 'index';
- $NavUrl = '/' . $Module . '/' . $Action . '/' . $this -> PageKey .'/';
- $NaIndex = '/' . $Module . '/' . $Action;
- $PageHtml = "\n
";
- $PageHtml .= '' . $this->PageCount . '条记录 ' . $this->PageNo . '/' . $this->PageNum . '页 ';
- $this->PageNo <= 1 or $PageHtml .= "首页\nPageNo - 1) . "\">上一页\n";
- if ( $NumNav ) { $PageHtml .= $this->NumPage($NavUrl); }
- $this->PageNo >= $this->PageNum or $PageHtml .= "PageNo + 1) . "\">下一页\nPageNum . "\">尾页\n";
- $PageHtml .= "
\n";
- return $PageHtml;
- }
-
- private function NumPage( $Can = '' ) { //数字分页
- $NumHtml = '';
- $First = 1;
- $Last = $this->PageNum;
- if ( $this->PageNum > 5 ) {
- if ( $this->PageNo < $this->PageNum ) {
- $First = $this->PageNo - 2;
- $Last = $this->PageNo + 2;
- }else{
- $First = $this->PageNo - 4;
- $Last = $this->PageNum;
- }
- }
- if ( $First < 1 ) { $First = 1; $Last = $First + 4;}
- if ( $Last > $this->PageNum ) { $First = $this->PageNum - 4; $Last = $this->PageNum;}
- for( $i = $First; $i <= $Last; $i++) {
- $NumHtml .= $this->PageNo != $i ? "\n\t" . '' . $i . '' . "\n\t" : "\n\t" .'' . $i . '' . "\n\t";
- }
- unset($Can, $First, $i, $Last);
- return $NumHtml;
- }
-
- public function UserPage($NumNav = false, $PageName = 'index', $Mulu = 'user' ) { //会员中心分页
- $NavUrl = '/' . $Mulu . '/' . $PageName . '/' . $this->PageKey . '/';
- $PageHtml = "\n
";
- $PageHtml .= '' . $this->PageCount . '条记录 ' . $this->PageNo . '/' . $this->PageNum . '页 ';
- $this->PageNo <= 1 or $PageHtml .= "首页\nPageNo - 1) . "\">上一页\n";
- if ( $NumNav ) { $PageHtml .= $this->NumPage($NavUrl); }
- $this->PageNo >= $this->PageNum or $PageHtml .= "PageNo + 1) . "\">下一页\nPageNum . "\">尾页\n";
- $PageHtml .= "
n";
- return $PageHtml;
- }
-
-
- // フォーム処理開始
-
- // フォーム判定時に送信
- public function FormIs( $Keys = 'mm' ) {
- return $_POST[ $Keys ] == 1 ? true : false;
- }
-
- //post 経由でデータを取得
- public function _post( $Keys = '', $TiHuan = '') {
- $Values =trip_tags( $_POST[ $Keys ] );
- $ this->FormArray[$Keys] = empty( $Values ) ? $TiHuan : $Values;
- return empty( $Values ) ? $TiHuan : $Values;
- }
-
- //メソッドを取得データを取得するには
- public function _get ( $Keys = '', $TiHuan = '') {
- $Values =trip_tags( $_GET[ $Keys ] );
- return empty( $Values ) ? $Values;
- }
-
- //数値か0以上かを判定
- public function IsNum( $Num = 0, $Mesg = 'パラメータは数値でなければなりません' ) {
- if ( is_numeric( $Num ) && !empty( $Num ) && $Num >= 0 ) {
- return $Num;
- }else{
- die( $Mesg );
- }
- }
-
- //それが数値であり、0以上であるかどうかを判断しますそして return True/False
- public function NumBer( $Num = 0) {
- return is_numeric( $Num ) && !empty( $Num ) && $Num >= 0 ? true : false;
- }
-
- //それを検出します関連するデータが存在するようです
- public function IsData($Types = true, $memg = 'データはすでに存在します' ){
- $this->Connection('select ' . $this->Field . ' from ' . $this ->Table . $this->Where);
- if ( $Types ){
- $this->Rest->num_rows > die( $memg ) : null;
- } else {
- return $ this->Rest->num_rows;
- }
- }
-
-
- //データベースレコードに書き込む
- public function into( $Mesg = '' ){
- !is_array( $this->FormArray ) ? Mesg ) : null;
- $Sql = ' に挿入 . $this->Table . ' (`';
- $I = 0;
- foreach ( $this->FormArray as $Key => $Val ) {
- $Duan .= !$I ? $Key . '`' : ', ` ' . '`';
- if ( is_numeric( $Val ) ){
- $Vals .= !$I ? : ', ' . $Val;
- }else{
- $Val .= !$I ? '' : ', '' . $Val .
- }
- $Sql .= $Duan . ') 値 (' . $Vals . ' )';
-
- //@file_put_contents('1.sql', $Sql, FILE_APPEND);
-
- $this-> ;Connection( $Sql );
- return !empty( $this->Err ) ? false : true;
- }
-
- //データを配列形式で書き込む
- public function MsgBox( $Table = '', $Filed = array () ) {
- $this -> Table($Table);
- foreach( $Filed as $Key => $Val ) {
- $this -> FormArray[ $Key ] = $Val; $this -> Into('データが取得されません');
- }
-
- //データベース Record を変更します
- public function Edit( $Array = array() ) {
- if ( empty( $Array ) ) { $Array = $this -> }
- if ( !is_array( $Array ) || empty( $Array ) ) {
- return false;
- } else {
- $Sql = 'update ' . set ';
- $I = 0;
- $Sub = '';
- $Huan = array(' -' => '[jian]', '+' => '[jia]', '*' = > '[チェン]', '/' => '[チュウ]');
- $ ザン = array('[ジャン]' => '-', '[ジア]' => '+' , '[cheng]' => '*', '[chu]' => '/ ');
-
- foreach ( $Array as $Files => $Val ) {
- $Val = !is_numeric( $ Val ) && !preg_match('/`w+`s*(+|-|*|/)/ i', $Val) '' . $Val;
- foreach ( $Huan as $key => $val ){
- $Val = str_replace($key, $val, $Val );
- $duan = '`' . $Files . ' . $Files . '' = ';
- $Sub .= $duan . $Val;
- $ I++;
- }
- $Sub . = $Fan ; => $Hui ) {
- $Sql = str_replace($Fan, $Hui, $Sql);
- }
-
- //echo $Sql;
-
- $this -> 接続を解除( $Array, $duan, $Fan, $Files, $Huan, $Hui, $I, $ key, $Sql, $Sub, $Val, $Zhan, $val );
- return !empty( $this -> ; エラー) ? false : true;
- }
-
- // データベース レコードを削除します
- $Sql = '$this->Table . $this->Connection( $Sql );
- unset($Sql);
- return !empty( $this->Err ) ? false : true;
- }
-
- //フォーム処理が終了します
-
- //ページジャンプ
- public function Msg( $Text = 'Operation success' ) {
- echo '';
- echo '
-
- ';
- exit;
- }
-
- #現在のシステム時刻を取得します
- public function Times(){
- return str_replace('-', '[jian]', date ('Y-m-d H:i:s'));
- }
-
- # 取得用户IP地址
- public function GetIP(){
- if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
- $ip = getenv("HTTP_CLIENT_IP");
- else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
- $ip = getenv("HTTP_X_FORWARDED_FOR");
- else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
- $ip = getenv("REMOTE_ADDR");
- else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
- $ip = $_SERVER['REMOTE_ADDR'];
- else
- $ip = "不明";
- return($ip);
- }
-
-
- //最後关闭データベース库连接
- public function Close(){
- !is_object( $this -> Conn ) または mysqli_close( $this -> Conn );
- }
-
- }
复制定
|