PHP が実装する Mysql データベース接続、クエリ、およびレコード セットのオペレーション コード例

WBOY
リリース: 2016-06-21 08:53:38
オリジナル
1414 人が閲覧しました

PHP ウェブサイトの開発では、Mysql データベースの操作が必要になることがよくあります。一般的に、Mysql データベースのリンク、Mysql データベースのクエリ、Mysql レコードセットの操作などの手順を実行する必要があります。毎回繰り返すと面倒なだけでなく、コードの冗長性も高いので、PHP を使用して Mysql データベース操作を実装するコードをいくつかコンパイルし、他の関数を追加したり、関数に統合したりすることができます。独自のニーズに応じて Mysql データベース クラスを作成します。

Mysql データベースリンクコード

関数 dbConnect( $hostname,$username, $pass,$db_name, $pconnect = 0)
{
$func = ($pconnect) ? 'mysql_connect' : 'mysql_pconnect';

if(!$connect) {
$connect = @$func($hostname $username$pass ) または 死ぬ("<フォント サイズ='2'>Mysql_Error : ".mysql_error()."
Mysql エラー番号 : ".mysql_errno()"");
}

@mysql_select_db($db_name、 $connect) または 死ぬ( " Mysql_Error : ".mysql_error()."
Mysql エラー番号: ".mysql_errno( )."
");

戻る $connect;
}

1
2
3
4
5
6
7
8
9
10
11
12

function dbConnect($hostname,$username,$pass,$db_name,$pconnect = 0)
{
    $func = empty($pconnect) ? 'mysql_connect' : 'mysql_pconnect';
   
    if(!$connect) {
        $connect = @$func($hostname,$username,$pass) or die("Mysql_Error : ".mysql_error()."
Mysql Error Num : "
.mysql_errno()."
");
    }
   
    @mysql_select_db($db_name, $connect) or die(" Mysql_Error : ".mysql_error()."
Mysql Error Num : "
.mysql_errno()."
");

    return $connect;
}

1
2
3
4
5
6
7
8
9
10
11
12

コメント :

パラメータ $hostname、$username、$pass、$db_name はそれぞれ、Mysql データベース サーバーのアドレス、ユーザー名、パスワード、接続されているデータベース名を表します。通常、ホスト名は localhost または 127.0.0.1 です。パラメータ $pconnect のデフォルトは 0 です。これは、通常、mysql_connect 関数が Mysql データベースへの接続に使用されることを意味します。

知識ポイント:

mysql_connect と mysql_pconnect の違い: 現在の PHP プログラムを実行した後、PHP は mysql_connect によって確立されたデータベース接続を自動的に閉じますが、mysql_pconnect は耐久性のある安定したデータベース接続を返し、次の接続が行われます。一定時間内であればリクエスト時に再利用できるため、MySQLデータベースに繰り返し接続する時間を節約でき、同時アクセス量が多くない場合に適しています。アクセスが比較的多い場合は、Mysql が接続の最大数に達したため、後続のリクエストを実行できない可能性があります。

mysql_error 関数 : 前の Mysql 操作によって生成されたテキスト エラー メッセージを返します。 mysql_errno 関数 は、前の Mysql 操作のエラー番号を返します。エラーがない場合は 0 を返します。

Mysql データベース クエリ コード

1
2
3
4
5
6
7

function query_error($query)
{
    global $connect;
    $temp_bar = "
=============================================================================
"
;
    $result = mysql_query($query, $connect) or die("DB ERROR
"
.$temp_bar." Mysql_Query : ".$query."
Mysql_Error : "
.mysql_error()."
Mysql Error Num : "
.mysql_errno()."
".$temp_bar);
    return $result;
}

1
2
3
4
5
6
7

関数 query_error($query) スパン>
{
グローバル $connect;
$temp_bar = "
===================================== === ========================================
"スパン>;

$result = mysql_query($query, $connect) または die( 「DB エラー
$temp_bar." Mysql_Query : ".$query."
Mysql_Error : "
.mysql_error() span>."
Mysql エラー番号: "
. mysql_errno()。 span>"
"
.$temp_bar);
戻る $result;
}<🎜>

注意: この関数は Mysql データベースのクエリ関数であり、エラーが発生した場合にはエラー メッセージ (SQL 文) が出力されます。 Web サイトのデータベース構造の漏洩を防ぐため、正式に製品化する場合は SQL 実行文を出力しないのが最善です。

Mysql レコードセット操作関数コード(mysql_fetch_array)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

function fetch_array($result,$result_type = MYSQL_ASSOC,$records = "one")
{
if ($records == "one") {
return @mysql_fetch_array($result,$result_type);
}
else {
for ($i=0;num_rows($result);$i++)
{
$info[$i] = @mysql_fetch_array($result,$result_type);
}

free_result($result);

return $info;
}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/>15
16
<🎜>

関数 fetch_array($result,<スパンクラス="re0">$result_type = MYSQL_ASSOC,$records = "1")
{
場合 ($レコード == "1") {
戻る @mysql_fetch_array($result< /span>,$result_type);
}
その他 {
対象 ($i=0< /span>;num_rows($result);$i++)
{
$info[$i] = @mysql_fetch_array($result< /span>,$result_type);
}
                                          free_result($result);
                                          戻る $info;
}
}<🎜>

: この関数の関数は mysql_fetch_array 関数から派生し、これに基づいて Mysql データベースのレコードセットを読み取り、取得した値を配列の形式で返す関数を追加しました。

知識ポイント:

mysql_fetch_array 関数は、mysql_fetch_row 関数 の拡張バージョンです。 2 番目のパラメータ result_type には、MYSQL_ASSOC、MYSQL_NUM、MYSQL_BOTH の 3 つの値があります。デフォルト値は MYSQL_BOTH です。 MYSQL_BOTH: 連想インデックスと数値インデックスの両方を含む配列を取得します。 MYSQL_ASSOC: リレーショナル インデックスのみを取得します (mysql_fetch_assoc() など)、MYSQL_NUM: 数値インデックスを取得します (mysql_fetch_row() など)。

エラーメッセージ関数コード

: この関数の機能は主に、アラートの形式でエラーを報告し、ページ ジャンプを実行することです。エラーを報告したりジャンプしたりする前に、まず MySQL データベースを閉じます。接続し、mysql_close 関数を使用します。

呼び出し手順:

上記の Mysql データベース操作の関数コードから、$connect 変数がグローバル変数であることがわかります。まず、上記の関数を mysqlconnect.php などのファイルに配置し、関連する変数を宣言します。値を割り当てます。この MySQL データベース接続関数は、dbConnect 関数が宣言された後に呼び出されます。つまり、

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

function error_msg($msg, $url= "")
{
global $connect;

if($connect) {
mysql_close($connect);
}

switch ($url)
{
case "":
$url = "history.go(-1)";
break;
case "close":
$url = "window.close()";
break;
default:
$url = "document.location.href = '$url'";
break;
}

if (!empty($msg)) {
echo "";
    }
    else{
        echo "";
    }
    exit;
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
/>15
16
17
18
19
20
21
22
23
24
/>25
26
27
28
29

function error_msg($msg) > $url= "")
{
グローバル $connect;

if($connect) {
mysql_close($connect);
}

スイッチ ($url)
{
ケース "":
$url = "history.go(-1)";
休憩;
ケース "閉じる":
$url = "window.close()";
休憩;
デフォルト:
$url = "document.location.href = '$url'";                                                                                                                                }

場合 (!(スパン>$msg)) {
エコー "";
}
else{
エコー "";スパン>
}
終了;
}

1
2
3
4
5
6

$hostname = "mysqlserveraddr";
$username = "yourusername";
$pass = "youruserpass";
$db_name = "yourdatabase";

$connect = dbConnect($hostname,$username,$pass,$db_name);

1
2
3
4
5
6

$ホスト名 = "mysqlserveraddr";
$ユーザー名 = "あなたのユーザー名";
$pass = "あなたのパス";
$db_name = "あなたのデータベース";

$connect = dbConnect($hostname, $username$pass,$db_name);

概要

:

上記の Mysql データベース接続、データベース クエリ、およびデータベース レコード セット操作関数コードの説明を通じて、PHP ウェブサイト開発における Mysql データベース操作の基本的な機能が含まれています。このコードは、次のように Mysql データベース クラスに変更できます。または、PHP を使用して他の MySQL データベース操作関数を追加することも可能です。

注意

: PHP Web サイト開発チュートリアル-leapsoul.cn 転載の際は、元のソースとこの記述をリンクの形で明記してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート