ホームページ  >  記事  >  データベース  >  PHP を介して Mysql データベース接続、クエリ、レコード セット、その他の操作を実装する方法

PHP を介して Mysql データベース接続、クエリ、レコード セット、その他の操作を実装する方法

jacklove
jackloveオリジナル
2018-06-08 10:30:251642ブラウズ

PHP ウェブサイト開発では、Mysql データベースの操作が必要になることがよくあります。通常、Mysql データベースのリンク、Mysql データベースのクエリ、Mysql レコードセットの操作などの手順が必要です。上記の操作を毎回繰り返すと、うまくいきません。コードは面倒なだけですが、非常に冗長なので、PHP を使用して Mysql データベース操作を実装するコードをいくつかコンパイルし、関数の形式で投稿しました。独自の関数に従って、他の関数を追加したり、Mysql データベース クラスに統合したりできます。ニーズ。

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

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;
}

注:

パラメーター $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データベースクエリコード

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;
}

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

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

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;
}
}

注: この関数の関数は 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() など)。

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

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 "<script language=&#39;javascript&#39;>alert(&#39;$str&#39;);$url;</script>";
}
else{
echo "<script language=&#39;javascript&#39;>$url;</script>";
}
exit;
}

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

呼び出し命令:

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

$hostname = "mysqlserveraddr";
$username = "yourusername";
$pass = "youruserpass";
$db_name = "yourdatabase";
$connect = dbConnect($hostname,$username,$pass,$db_name);

Mysql データベース接続、データベース クエリ、およびデータベース レコード セット操作関数コードの上記の説明を通じて、Mysql データベースPHP Web サイト開発での操作 基本的な機能が含まれています。必要に応じて、このコードを MySQL データベース クラスに変更したり、PHP を使用して他の MySQL データベース操作機能を追加したりできます。詳細については、PHP 中国語 Web サイトを参照してください。

関連する推奨事項:

MYSQL クエリ時間データ

データベース メソッドを使用してセッションを保存する方法

SQL インジェクションを防ぐ 5 つの方法

以上がPHP を介して Mysql データベース接続、クエリ、レコード セット、その他の操作を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。