ホームページ  >  記事  >  バックエンド開発  >  PHP データベース ファイルの使用方法をすぐに学ぶ_PHP チュートリアル

PHP データベース ファイルの使用方法をすぐに学ぶ_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-15 13:28:16934ブラウズ

PHP はまだ比較的一般的に使用されているため、PHP データベース ファイルを研究し、ここで皆さんに共有したいと思います。各テーブルが別個のデータベースにあるアプリケーションを見てみましょう。これは非常に大規模なデータベースでは妥当ですが、一般的なアプリケーションではこのレベルのパーティショニングは必要ありません。さらに、データベース間でリレーショナル クエリを実行することはできません。これにより、複数のデータベース間でテーブルを管理することがより困難になることは言うまでもなく、リレーショナル データベースを使用するという概念自体が失われてしまいます。 では、複数のデータベースはどのようにあるべきでしょうか?まず、いくつかのデータが必要です。リスト 1 は、このようなデータが 4 つのファイルに分割されていることを示しています。

リスト 1. PHP データベース ファイル

<ol class="dp-xml">
<li class="alt"><span><span>Files.sql:  </span></span></li>
<li class=""><span>CREATE TABLE files (  </span></li>
<li class="alt"><span>id MEDIUMINT,  </span></li>
<li class=""><span>user_id MEDIUMINT,  </span></li>
<li class="alt"><span>name TEXT,  </span></li>
<li class=""><span>path TEXT  </span></li>
<li class="alt"><span>);  </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>Load_files.sql:  </span></li>
<li class=""><span>INSERT INTO files VALUES ( 1, 1, 'test1.jpg', 'files/test1.jpg' );  </span></li>
<li class="alt"><span>INSERT INTO files VALUES ( 2, 1, 'test2.jpg', 'files/test2.jpg' );  </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>Users.sql:  </span></li>
<li class=""><span>DROP TABLE IF EXISTS users;  </span></li>
<li class="alt"><span>CREATE TABLE users (  </span></li>
<li class=""><span>id MEDIUMINT,  </span></li>
<li class="alt"><span>login TEXT,  </span></li>
<li class=""><span>password TEXT  </span></li>
<li class="alt"><span>);  </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>Load_users.sql:  </span></li>
<li class=""><span>INSERT INTO users VALUES ( 1, 'jack', 'pass' );  </span></li>
<li class="alt"><span>INSERT INTO users VALUES ( 2, 'jon', 'pass' );  </span></li>
</ol>

データベース設計、データベース アクセス、データベース ベースの PHP ビジネス ロジック コードはさまざまな方法で作成できますが、通常はエラーが発生し、これらの問題が発生すると、それらを修正する方法。これらのファイルのマルチデータベース バージョンでは、SQL ステートメントを 1 つのデータベースにロードしてから、ユーザーの SQL ステートメントを別のデータベースにロードする必要があります。特定のユーザーに関連付けられたファイルをデータベースにクエリするための PHP コードを以下に示します。 get_user 関数は、users テーブルを含むデータベースに接続し、特定のユーザーの ID を取得します。 get_files 関数は、files テーブルに接続し、特定のユーザーに関連付けられたファイル行を取得します。これらすべてを行うためのより良い方法は、データをデータベースにロードしてから、以下のようなクエリを実行することです。

リスト 2. PHP データベース ファイル Getfiles.php

<ol class="dp-xml">
<li class="alt"><span><span><?php  </span></span></li>
<li class=""><span>require_once("DB.php");  </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>function get_user( $name )  </span></li>
<li class="alt"><span>{  </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">dsn</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'mysql://root:password@localhost/bad_multi1'</font></span><span>;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">db</font></span><span> =& DB::Connect( $dsn, array() );  </span>
</li>
<li class=""><span>if (PEAR::isError($db)) { die($db->getMessage()); }  </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">res</font></span><span> = $db->query( "SELECT id FROM users WHERE </span><span class="attribute"><font color="#ff0000">login</font></span><span>=?",array( $name ) );  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">uid</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">null</font></span><span>;  </span>
</li>
<li class="">
<span>while( $res->fetchInto( $row ) ) { $</span><span class="attribute"><font color="#ff0000">uid</font></span><span> = $row[0]; }  </span>
</li>
<li class="alt"><span> </span></li>
<li class=""><span>return $uid;  </span></li>
<li class="alt"><span>}  </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>function get_files( $name )  </span></li>
<li class=""><span>{  </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">uid</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">get_user</font></span><span>( $name );  </span>
</li>
<li class=""><span> </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">rows</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">array</font></span><span>();  </span>
</li>
<li class=""><span> </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">dsn</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">'mysql://root:password@localhost/bad_multi2'</font></span><span>;  </span>
</li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">db</font></span><span> =& DB::Connect( $dsn, array() );  </span>
</li>
<li class="alt"><span>if (PEAR::isError($db)) { die($db->getMessage()); }  </span></li>
<li class=""><span> </span></li>
<li class="alt">
<span>$</span><span class="attribute"><font color="#ff0000">res</font></span><span> = $db->query( "SELECT * FROM files WHERE </span><span class="attribute"><font color="#ff0000">user_id</font></span><span>=?",array( $uid ) );  </span>
</li>
<li class=""><span>while( $res->fetchInto( $row ) ) { $rows[] = $row; }  </span></li>
<li class="alt"><span>return $rows;  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span>$</span><span class="attribute"><font color="#ff0000">files</font></span><span> = </span><span class="attribute-value"><font color="#0000ff">get_files</font></span><span>( 'jack' );  </span>
</li>
<li class="alt"><span> </span></li>
<li class=""><span>var_dump( $files );  </span></li>
<li class="alt"><span>?>  </span></li>
</ol>

リスト 3. Getfiles_good.php

<ol class="dp-xml">
<li class="alt"><span><span><?php  </span></span></li>
<li class=""><span>require_once("DB.php");  </span></li>
<li class="alt"><span> </span></li>
<li class=""><span>function get_files( $name )  </span></li>
<li class="alt"><span>{  </span></li>
<li class="">
<span>$</span><span class="attribute">rows</span><span> = </span><span class="attribute-value">array</span><span>();  </span>
</li>
<li class="alt"><span> </span></li>
<li class="">
<span>$</span><span class="attribute">dsn</span><span> = </span><span class="attribute-value">'mysql://root:password@localhost/good_multi'</span><span>;  </span>
</li>
<li class="alt">
<span>$</span><span class="attribute">db</span><span> =& DB::Connect( $dsn, array() );  </span>
</li>
<li class=""><span>if (PEAR::isError($db)) { die($db->getMessage()); }  </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span>$</span><span class="attribute">res</span><span> = $db->query("SELECT files.* FROM users, files WHERE  </span>
</li>
<li class="alt">
<span></span><span class="attribute">users.login</span><span>=? AND </span><span class="attribute">users.id</span><span>=</span><span class="attribute-value">files</span><span>.user_id",  </span>
</li>
<li class=""><span>array( $name ) );  </span></li>
<li class="alt"><span>while( $res->fetchInto( $row ) ) { $rows[] = $row; }  </span></li>
<li class=""><span> </span></li>
<li class="alt"><span>return $rows;  </span></li>
<li class=""><span>}  </span></li>
<li class="alt"><span> </span></li>
<li class="">
<span>$</span><span class="attribute">files</span><span> = </span><span class="attribute-value">get_files</span><span>( 'jack' );  </span>
</li>
<li class="alt"><span> </span></li>
<li class=""><span>var_dump( $files );  </span></li>
<li class="alt"><span>?>  </span></li>
</ol>

このコードは短いだけでなく、理解しやすく効率的です。 2 つのクエリを実行する代わりに、1 つのクエリを実行します。この質問は突飛に聞こえるかもしれませんが、実際には、よほどの理由がない限り、すべてのテーブルは同じデータベース内にあるべきであると通常結論付けられます。


www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/446457.html技術記事 PHP はまだ比較的一般的に使用されているため、PHP データベース ファイルを研究し、ここで共有しました。皆さんのお役に立てれば幸いです。それぞれのアプリを見てみましょう...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。