ホームページ  >  記事  >  バックエンド開発  >  Mysqli_PHP チュートリアルに基づく PHP データベース操作データベース操作クラス ライブラリ

Mysqli_PHP チュートリアルに基づく PHP データベース操作データベース操作クラス ライブラリ

WBOY
WBOYオリジナル
2016-07-13 10:32:12859ブラウズ

このタイプのライブラリはシンプルで使いやすいため、PHP プロジェクトで実行されるほとんどの SQL 操作を簡単に変更および改善できます。

準備作業

まず、このクラスライブラリM.class.phpをダウンロードしてから、Mysqliデータベース接続クラスライブラリMysqliDb.class.php(パッケージのダウンロードアドレス)をダウンロードしてください
新しいインクルードフォルダを作成し、ダウンロードしたものを置きますクラスファイルを2つ、入れてください。
次に、プロジェクトの下にtest.phpファイルを作成してください。注: UTF-8 ファイル形式

データベースに接続するには、マシンの状況に応じて次のコードを入力してください:

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

header('Content- Type: text/ html;Charset=utf-8');
define('ROOT_PATH', dirname(__FILE__));
define('DB_HOST', 'localhost') //データベースサーバーアドレス
define('DB_USER'); , 'root' ); //データベースユーザー名
define('DB_PWD', '×××') //データベースパスワード
define('DB_NAME', '×××'); //データベース名
define( 'DB_PORT', '3306'); //データベースポート
function __autoload($className) {
require_once ROOT_PATH . '/includes/'.ucfirst($className) .'.class.php';
}

さて、上記の操作は準備作業ですので、正式にクラスライブラリの説明に入りましょう。

クラスライブラリの説明

まず、M.class.php をインスタンス化する必要があります。インスタンス化は非常に簡単です。

コードをコピーします コードは次のとおりです:
$m = new M(); //このステップは、M.class.php のすべての関数が変数 $m

にカプセル化されることを意味します。 注:

1. M クラス ライブラリのメソッド パラメーターの説明については、M.class.php ファイルにアクセスして詳細なコメントを参照してください。ここでは説明しません。検討の際はファイル内のパラメータ、つまりコメントを確認することをお勧めします。
2. 説明コードで使用されるデータベース構造は次のとおりです。

コードをコピー コードは次のとおりです:
CREATE TABLE `user` (
`id` int(8) unsigned NOT NULL auto_increment,
`name` varchar(50) default NULL,
`email ` varchar( 100) デフォルト NULL,
`age` smallint(3) デフォルト NULL,
`class_id` int(8) デフォルト NULL,
`commit_time` int(10) デフォルト NULL,
PRIMARY KEY (`id`),
KEY ` name` (`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8


コードをコピー コードは次のとおりです:
CREATE TABLE `class` (
`class_id` int(8) NOT NULL auto_increment,
`class_name` varchar(100) default NULL,
PRIMARY KEY ( `class_id` )
) ENGINE=InnoDB DEFAULT CHARSET=utf8


そしてテストデータを追加します。

3. M クラス ライブラリでは、ほとんどのメソッドは SQL メソッドとスプライシング メソッドの 2 つのタイプに分かれています。これは例に見られます

4. 以下の説明の M は M.class.php ファイルです


方法1、Insert()でデータを追加します

Insert メソッドのすべての使用例は次のとおりです:

コードをコピーします コードは次のとおりです:
$m->Insert("user", null, array('Jiaojiao', 'liruxing1715@sina.com', '23', time ()) ; .com', '23', time()), true); // 関数は上記と同じで、last_insert_id (挿入された成長 ID) を返します
$m->Insert("INSERT INTO `user) ` (`名前`、`電子メール`、`年齢`、`コミット時間`) VALUES ('張暁華'、'zhangxiaohua@sina.com.cn'、'22'、'".time()."')" ); //SQL メソッド、戻り値はデータベースの影響を受ける行数です
$m->Insert("INSERT INTO `user` (`name`, `email`, `age`, `commit_time`) VALUES ('Zhang Xiaohua', 'zhangxiaohua@sina.com.cn', '22', '".time()."')", true); // 上記と同様に、last_insert_id を返します



注: Insert メソッドの 2 番目のパラメーターが null の場合、auto_increment フィールドを除く、挿入されたテーブルのすべてのフィールドが自動的に取得されます。戻り値が最後に挿入された ID の場合は、M ソース ファイルを参照してください。 Insert を設定してください。メソッドの最後のパラメータは true (デフォルトは false) です。
方法 2、Update() でデータを変更する

update メソッドのすべての使用例は次のとおりです:

コードをコピーします

コードは次のとおりです:

$m->Update("user", array('name'=>'Li Ruru', 'age'=>24), "id=1"); //スプライシング方法、IDを変更to 1 データの名前は「Li Ruru」、年齢は「24」、メソッドの戻り値は影響を受けた行数です
$m->Update("UPDATE `user` SET `name` ='Li Ruru', `age `=24 WHERE id = 1"); //SQLの使い方、関数は上記と同じです

方法3、Del()でデータを削除する

Del メソッドのすべての使用例は次のとおりです:

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

$m->Del('user', 'id=3') //結合方法: `user 内の ID 3 のデータを削除します。 ` table and return 影響を受ける行の数
$m->Del("DELETE FROM `user` WHERE id=4"); //SQL メソッド: `user` テーブル内の ID 4 のデータを削除し、その数を返します。影響を受ける行の数
$m->Del("DELETE FROM `user` WHERE id in (10, 11, 12)"); //SQL メソッド: 複数のデータを削除し、in の ID 10、11、12 を削除します。 `user` テーブル データ、影響を受ける行の数を返します

メソッド4、Total()はレコード数を取得し、戻り値はintです

Del メソッドのすべての使用例は次のとおりです:

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

$m->Total('user'); //スプライシングメソッド: `user`テーブル内のレコード数を無条件に返します
$ m->Total( 'user', 'id>1'); //スプライシング方法: `user` テーブル内の 1 より大きい ID を持つレコードの数を返します、条件付き
$m->Total("SELECT COUNT(*) AS total FROM `user `"); //SQL メソッド、注意: SQL メソッドを使用するときは、ステートメントで「AS total」を使用する必要があり、そうでない場合はエラーが報告されます

メソッド 5、IsExists() はデータが存在するかどうかを確認し、戻り値は boolean です

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

$m->IsExists('user', "`name`='Jiaojiao'") //スプライシングメソッド: に存在するかどうかを返します。 `user` テーブル `name` が "Jiaojiao" データの場合は true を返し、存在しない場合は false を返します

メソッド 6. InsertId() 次に追加されるテーブルの自動拡張 ID を取得します。ここでは追加操作はなく、次の拡張 ID を取得するだけであることに注意してください。

コードをコピーします コードは次のとおりです:
echo $m->InsertId('user') //`user`テーブルの隣に追加された自動インクリメントIDを取得します

メソッド 7、GetRow() は単一のデータを返し、戻り値は 1 次元配列です

GetRow メソッドのすべての使用例は次のとおりです:

コードをコピー コードは次のとおりです:
$data = $m->GetRow("SELECT `name`,email FROM `user` WHERE id=1"); //SQL メソッド, 1 次元の配列を返します。例: Array ( [name] => Jiaojiao[email] => liruxing1715@sina.com )
$data = $m->GetRow("SELECT u.`name`, u. email, c .class_name FROM `user` u, `class` c WHERE u.class_id=c.class_id AND u.id=1"); //SQLメソッド、マルチテーブルクエリ
$data = $m-> GetRow('user ', ''name`,email', "id=1"); //結合メソッド
$data = $m->GetRow('user as u,`class` c', 'u. `name`, u.email,c.class_name', "u.id=1 AND u.class_id=c.class_id"); //スプライシングメソッド、複数テーブルクエリ
$data = $m->GetRow( "SELECT `name` ,email FROM `user`"); //条件が指定されていない場合は、すべての情報が表示されるはずですが、このメソッドではデフォルトで最初の情報が表示されます (これはお勧めできません!!!)

$data はクエリされる 1 次元配列です。

メソッド 8、GetOne() は単一のデータを返します

GetOne メソッドのすべての使用例は次のとおりです:

コードをコピー コードは次のとおりです:
$name = $m->GetOne("SELECT `name` FROM `user` WHERE id=1");文字列、例: Jiaojiao
$name = $m->GetOne("user", "name", "id=1"); //スプライシング メソッドは文字列を返します、例: Jiaojiao

メソッド 9、FetchAll() はすべてのレコードを返します

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

$data = $m->FetchAll("user"); // `user` テーブル内のすべてのレコードを 2 次元配列の形式で返します
$data = $m->FetchAll("SELECT * FROM `user`"); //SQLメソッド、関数、戻り値は上記と同じ
$data = $m->FetchAll("user", "name,email", "id>1", ' id DESC', '2 '); //id>1 の 2 つのデータを返し、名前とメールアドレスのみを表示し、id で逆順に並べ替えます。注: このメソッドの最後のパラメータは、ページング用に準備された '0,2' にすることもできます。最初のページが '0,2' の場合、2 番目のページは '2,2' になります
/。 /このメソッドは結合テーブル クエリと複数テーブル クエリもサポートしています。以下は結合テーブル クエリの例です
$data = $m->FetchAll("`user` as u LEFT JOIN `class` as c ON u .class_id=c .class_id", "u.`name`,u.email, c.class_name", "u.id=1"); //注:この接続方法ではONを付ける位置が


注: この FetchAll メソッドについては、後でこのメソッドを使用して完璧なページングを行う記事を書きます。 !注目してください。

方法 10、MultiQuery() は複数の SQL ステートメントを実行します

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

$sql = "INSERT INTO user (`name`,email, age, class_id, commit_time) VALUES ('Jiahuahua', 'jiahuahua@sina.com. cn' , '22', '1', '".time()."')"; //「Jia Huahua」という名前の学生情報を追加します
$sql .= ";DELETE FROM `user` WHERE `name` ='Jiaojiao'"; //「Jiaojiao」という名前の学生情報を削除します
//説明: $sql は英語で複数の SQL をつなぎ合わせたものです; (セミコロン)
$data = $m-> MultiQuery($sql) ; //戻り値が true の場合は実行が成功したことを意味し、 false の場合は実行が失敗したことを意味します

クラスライブラリの説明

これで、このクラス ライブラリのすべての機能の説明が完了しました。M ファイルについて詳しく読んで、その内部動作メカニズムを理解していただければ幸いです。 Mファイルは実行が遅くなることはありませんので、安心してご利用ください。
使用中に SQL スプライシング エラーが発生した場合、クラス ライブラリはわかりやすいエラー メッセージを報告します。
ご質問がございましたら、ぜひメッセージを残してください。幸運を学びましょう。

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/756571.html技術記事このタイプのライブラリはシンプルで使いやすいため、PHP プロジェクトで実行されるほとんどの SQL 操作を簡単に変更および改善できます。 準備作業 まず、このクラス ライブラリ M.c をダウンロードしてください...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。