はじめに
信じるPHP については、誰もがすでによく知っています。 PHP には、世界中のほぼすべてのデータベースのサポートが組み込まれており、再拡張する必要はありません。そのため、次のように言う人もいます。PHP を使用してデータベースを呼び出すことができないのは、PHP を学習していないことを意味します。以下は、私自身の操作経験とヒーローの意見に基づいた著者のまとめであり、初心者に少しでも役立つことを願っています。
PHP については、皆さんもすでによくご存じだと思います。 PHP には、世界中のほぼすべてのデータベースのサポートが組み込まれており、再拡張する必要はありません。そのため、次のように言う人もいます。PHP を使用してデータベースを呼び出すことができないのは、PHP を学習していないことを意味します。以下は、私自身の操作経験とヒーローの意見に基づいた著者のまとめであり、初心者に少しでも役立つことを願っています。
PHP3 つのデータベースを呼び出すメソッド
この記事で詳しく紹介しますPHP は MySQL、ODBC および を呼び出します。 ORACLE データベース。
MySQL は、小型で優れたデータベース サーバー ソフトウェアであり、中小規模のアプリケーション システムに最適です。標準の ANSI SQL ステートメントのサポートに加えて、最も重要なことは、複数のプラットフォーム、および Unix/Linux もサポートしていることです。システムでは、MySQL はマルチスレッド操作をサポートしており、非常に優れたパフォーマンスを実現できます。これは、PHP や Apache などのオープンソース ソフトウェアです。公式 Web サイトは、http://www.mysql.com で、Windows、Linux、Unixバージョンのソースコードのダウンロード。
MySQL アクセス関数を実行するには、対応する権限が必要であることに注意してください。一般的に使用される関連関数は次のように紹介されます:
(1)integer
mysql_connect(host, ユーザー名、パスワード);
この関数は MySQL データベース接続。データベースが別のポート上にある場合は、ホスト名の後にコロンとポート番号を追加します。すべてのパラメータはオプションであり、デフォルトではローカル ホスト、ユーザーが実行するスクリプトの名前、および空に対応します。ホストには、IP アドレスまたはドメイン名を指定できます。 スクリプトの実行の終了時に、接続は自動的に閉じられます。mysql_close を使用して事前に接続を閉じることもできます。
(2)boolean mysql_create_db(データベース名); 🎜>
データベースを作成します。データベースを作成する権限を持つアカウントを使用して接続を開く必要があることに注意してください。 (3)
boolean
mysql_select_db(データベース名,接続番号);
デフォルトのデータベースを選択します。 (4)integer
mysql_query
(SQLステートメント,接続番号 );
指定されたデータベースをクエリします。 SQL ステートメントが select の場合、 は結果番号を返します。それ以外の場合、戻り値は無視できます。失敗した場合は、false. を返します。 (5)array
mysql_fetch_array
(結果番号); は次の行 を取り出し、 は配列 を返します。 には数値添字 (最初のフィールドは添え字 0) ですが、文字列添え字を使用して ( つまり、各フィールド名 ) を使用します。最後の行がフェッチされている場合は、 false. を返します。 (6)
mysql_fetch_row
(結果番号); >結果セット内の行内のすべてのフィールドを表す行列を返します。各呼び出しでは、行がなくなるまで次の行が生成され、false
が返されます。各フィールド値は、ゼロベースのオフセットによってインデックスが付けられます。これは、クエリから結果を取得する最も速い方法です。 (7)integer mysql_num_rows(結果番号
);結果セット内の行数を返します
(8)integer mysql_num_fields(結果番号
) ; 結果セット内のフィールドの数を返します。
(9)integer mysql_list_dbs();
サーバーにデータベース リストをクエリします。
mysql_fetch_row
関数および同様の関数で使用できる結果ポインターを返します。 (10)mysql_list_tables(データベース名
);指定されたデータベースのフォーム リストを指す結果ポインターを取得します。この結果ポインターは、結果セットから行を取得する任意の関数で使用できます。
(11)mysql_close(接続番号); >データベースへの接続を閉じます。接続は
mysql_connect によって開かれる必要があります。すべての非永続リンクはスクリプトの最後に自動的に閉じられるため、この関数の使用は厳密には必要ありません。 (12)mysql_pconnect(
ホスト,ユーザー名 、パスワード); と
mysql_connect は完全に類似しています、 に接続しますが、接続が確立されると "永続接続"、 を確立します。確立 、mysql_closeを使用しても、関数またはプログラムは閉じられません .次に永続的な接続を確立しようとしたとき、システムが永続的な接続がすでに存在していることを検出した場合 , その後、接続番号を再作成せずに直接返します。 以下は、
MYSQL データベースを呼び出してページに表示する例です。 $pagesize = 5; // 各ページには 5 レコード
$ host が表示されます="ローカルホスト";
$user="ユーザー";
$パスワード="psw";
dbname
="book"; //クエリ対象のデータベース テーブル名 //
接続MySQLデータベース
mysql_connect
("$host","$user " ,"$password") または die("MySQL データベース サーバーに接続できません! ");$db =
mysql_select_db
("$dbname") または die("データベースに接続できません! >");$
sql
= "pagetest から合計として count(*) を選択";//クエリレコードの数を生成します SQLStatement$
rst
= mysql_query($ sql) または die("SQL ステートメントを実行できません: $sql ! "); //クエリレコード数$row =
mysql_fetch_array
($rst) or die("これ以上レコードはありません!") /レコードを 1 つ取り出します $
rowcount
= $row["total"];//レコード数を取得しますmysql_free_result($rst) または die("result リソースを解放できません! "); //リリース結果リソース
$ページ数 = bcdiv($rowcount+$pagesize-1,$pagesize,0);//合計ページ数を計算します
if(! isset ($pageno)) {
$pageno = 1; // の場合、 は設定されません。 >pageno の場合、デフォルトではページ 1
が表示されます}
if($pageno<1) {
$pageno = 1; //ifpageno が 1 より小さい場合は、1
<🎜 に設定します>}
if($
pageno>$pagecount) {
$
pageno = $pagecount ; / /pageno が総ページ数より大きい場合は、最後のページに設定します
}
if($
pageno>0) {
$
href = eregi_replace (" %2f","/",urlencode($PHP_SELF));//$PHP_SELFを使用可能な URL に変換しますin URL で使用される文字列。中国語のディレクトリまたは中国語のファイル名を処理できるようになります。
if($
pageno>1){/ /前のページへのリンクを表示します
echo "href="" . $href . "?pageno=" . ($pageno-1) . "">前のページ ";
}
else{
echo "前のページページ";
}
for($i=1;$i$pageno;$i
+ +){
echo "href="" . $href . "?pageno=" . $ i . "">" . $i
. " ";
}
echo $pageno
. " ";
for($i++;$i<=$ページ数;$i
++){
echo " < ;a href="" . $href . "?i" . $ i . " ";
}
if($
pageno<$pagecount ) {//次のページへのリンクを表示します
echo "href="" . $href . "?pageno=" . "">次のページ }
else{
echo "
次のページ ";}
$ offset = ($pageno-1) * $
pagesize
;//テーブル全体におけるこのページの最初のレコードの位置を計算します( 最初のレコードは 0)$
sql
= "select * from pagetest LIMIT $offset ,$pagesize ";//このページのデータをクエリするための SQL ステートメントを生成します$
rst
= mysql_query($sql);//このページのデータをクエリします $
num_fields
= mysql_num_fields($rst);//フィールドの合計数を取得します $
i
= 0;while($
i
<$num_fields){//すべてのフィールドを取得 名前$fields[$i] = mysql_field_name($rst,$i) // は最初の を取得します。 > i+1 フィールドの名前
$i++;
}
echo "cellspacing="0" cellpadding="0">";//テーブルの出力開始
echo "<tr>";
reset($fields);
while(list(,$ field_name)=each($fields)){//表示フィールド名
echo "<th> $ フィールド名番目>";
}
echo "tr>" ;
while($row=mysql_fetch_array($rst)){//このページのデータを表示します
echo "<tr>";
reset($fields);
while(list(,$field_name )=each($fields)){//各フィールドの値を表示します
$field_value = $row[$ フィールド名];