ホームページ php教程 php手册 PHP のデータベース接続 (1)

PHP のデータベース接続 (1)

Jun 21, 2016 am 09:08 AM
connect php request

チュートリアル|データ|データベース|データベース接続

中盤 1: データベース接続

最初の 2 章は PHP 言語に焦点を当てていましたが、ここで停止してアプリケーションの作成を開始します。この章では、MySQL データベースに接続するアプリケーションを作成します。

前の 2 つの章を学習したら、PHP の内部データの処理方法とステートメントと関数の作成方法を学習したはずです。論理的に言えば、次のステップは SQL (構造化クエリ ステートメント) を使用して PHP の外部データを処理する方法を学ぶことです。しかし、本題に入る前に、基本原則から離れて、しばらくリラックスしましょう。
PHP アプリケーションの開発プロセスを見てみましょう。すべてのアプリは文字通り独自である必要がありますが、すべてのアプリは以前の成果、つまり一連の共通機能に基づいて構築されている必要もあります。これら 2 つのテクニックを組み合わせることをお勧めします。他人が書いた関数をやみくもに使用すると、プログラムから新しい機能を追加できなくなり、また、関数の効率を向上させるために古い関数を変更することもできなくなります。一方で、既存の機能を利用することで、より早くアプリケーションを開発できるようになります。したがって、優れたプログラマーになるためには、これら 2 つの両極端の間で自分自身を把握する必要があります。

注: HTML にまだ慣れていない場合は、今すぐ学習を始めてください。この本は、読者が HTML にすでに精通していることを前提としています。 HTML のテーブルやフォームに慣れていない場合は、すぐに混乱してしまうでしょう。

5.1 はじめに
新しいプロジェクトを開始するときは常に、新しい空のディレクトリから開始するのが好きです。ここでは、このディレクトリを phpbook/ch05 と呼びます。もちろん、このディレクトリは Web サーバーのルート ディレクトリに存在する必要があります。第 1 章の手順に従って PHP をインストールした場合、Web サーバーのルート ディレクトリは /usr/local/apache/htdocs になるはずです。次に、リスト 5.1 に示すように、バックグラウンド管理タスクのメニューを含む menu.php3 という名前のファイルを作成します。

リスト 5.1 menu.php3
>

管理メニュー



  1. データベースの作成


ファイル common.inc 内の関数 affy_header および affy_footer の定義が含まれています。これらの関数については、この章の後半で説明します。
5.2 接続の作成
「データベース接続の作成」をクリックすると、connect.php3 ファイルが実行され、第 2 章でインストールした MySQL データベース サーバーへの接続が試行されます。
リスト 5.2 は、ユーザー名コードビットとパスワード コードビットを使用してデータベース接続を試みている connect.php3 ファイルを示しています。MySQL のインストール時にユーザー名が作成されていないため、接続は失敗したと考えられます。少なくともこの場合、失敗は良いことです。問題に対処する方法がわかるからです。図 5.1 は、接続が失敗した後に表示されるエラー メッセージとフォームを示しています。

リスト 5.2 connect.php3

ページ 107 -108 リスト 5.2


ページ 108 図 5.1

図 5.1 接続失敗時のエラー メッセージ表示

データベース接続が失敗すると、プログラムはエラー メッセージと Aユーザーが root ユーザーのパスワードを入力できるフォーム。この章の後半で説明するように、root パスワードを使用すると、codebits という名前のユーザーを作成できます。ここでは、$arr_request 配列に関する部分をスキップしてください。
mysql_connect 関数が呼び出され、接続が失敗すると、通常、関数は次の情報を表示します:

警告: MySQL 接続失敗: アクセスが拒否されました
ユーザー: 'codebits@localhost' (パスワードの使用: YES)

ほとんどのアプリケーション プログラム特に高度にグラフィカルなアプリケーションでは、表示内容を正確に制御する必要があります。関数 mysql_connect の前に (@) 記号を追加すると、エラー メッセージの表示が抑制されます。
form ステートメントの action 属性は、送信ボタンがクリックされたときに connect.php3 ファイルが実行されることを指定していることに注意してください。これは再帰プログラムの例であり、PHP ファイルがそれ自体を呼び出すことができることを意味します。
再帰的プログラミング手法を適用すると、同じトピックのすべてのコードを同じファイルにコンパイルできます。どのような場合に関数を 1 つのファイルに結合するか、またはプログラムを複数のファイルに分割する必要があるかについては、経験に依存します。私の最初の経験則は、特定の関数の実装に必要なコードが 100 行を超える場合は、別のファイルを作成するということです。

5.3 HTML フォーム情報の取得
パスワードを入力してクリックしてデータベースに接続しても、connect.php3 がデータベース接続を確立するためにフォームの入力値を使用していないため、接続は失敗します。
PHP エンジンは、各フォーム フィールドを $HTTP_POST_VARS という配列に置きます。上記の例では、配列にはユーザー名とパスワードの 2 つの要素があります。このプログラムでは、$HTTP_POST_VARS['username'] および $HTTP_POST_VARS['password'] を通じてフォーム情報にアクセスできます。
$HTTP_POST_VARS['password'] を使用してフォーム内の情報を取得するのは比較的簡単に思えます。しかし、まだ隠れた問題がいくつかあります。まず、フォームフィールドの名前 (この例ではパスワード) が大文字か小文字か、あるいは両方であるかを確認します。
2 番目の質問の内容は、この例とはほとんど関係ありません。フォーム メソッドに加えて、URL を使用して PHP スクリプトを実行することもできます。例:

http://.../connect.php3?username=root&password=password

ご覧のとおり、ユーザー名とパスワードは次のとおりです。 URL を通して渡されます。疑問符「?」はドメイン情報の始まりを示し、「&」はドメインの区切り文字です。幸いなことに、PHP エンジンは URL 行も自動的に分析し、結果を $HTTP_GET_VARS 配列に保存します。
問題は (そう思われるのであれば)、プログラムが複数の場所 (配列 $HTTP_GET_VARS と配列 $HTTP_POST_VARS) から情報を取得できることです。
これら (およびその他) の問題に対する私の解決策は、2 つの $HTTP 配列から初期化情報を取得する $arr_request という配列を作成することです。 common.inc では、次のコーディング行を使用して、配列 $arr_repuest を数値的に初期化できます。

//
// URL ベース (get) パラメーターとフォーム ベース (post) パラメーターの両方を保持するリクエスト配列を宣言します
$arr_request = array();

// URL パラメーターとフォーム パラメーターを
に移動します。 // リクエスト配列は URL
// パラメータよりも優先されます。さらに、すべてのキーは小文字に変換されます
//
If (count($key, $value) ) = each ($HTTP_GET_VARS)) {
$arr_request[strto lower($key)] = $value;
}
}
if (count($HTTP_POST_VARS)) {
while (list($key, $value) = each ($HTTP_POST_VARS)) {
$arr_request[strto lower($key)] = $value;
}
}

common.inc ファイルがすべての PHP スクリプトに含まれている場合は、スクリプトが実行されます。渡されたすべての情報は配列 $arr_request に小文字で保存されます。つまり、$arr_request['username'] を使用してユーザー名情報を取得できます。
PHP は、配列 $HTTP_GET_VARS と配列 $HTTP_POST_VARS の代替を提供し、HTML フォームと URL ベースの情報に PHP 変数として直接アクセスできます。たとえば、PHP スクリプトでは、 として定義されたドメイン情報に $last_name を使用して PHP プログラム内で直接アクセスでき、同じ情報は URL に基づいてアクセスできます。たとえば、http://www.site.com?last_name=join は $last_name で取得できます。ただし、プログラムに渡されるすべての情報をループするのに非常に便利なため、私は配列 $arr_request を使用することを好みます。情報がスカラーの場合、ループには適していません。たとえば、Shift キーを使用してプログラムが破損しないように、すべてのパラメータ名を大文字に変更するか、エラー検出中にすべての入力パラメータを表示する必要があります。

注: このセクションでは CGI (Common Gateway Interface) プロトコルについて簡単に説明します。詳細については、本書の付録 A「インターネット リソース」に記載されている内容を参照してください。

5.4 HTML フォーム情報の使用
PHP スクリプトからフォーム情報に簡単にアクセスできるようになったので、この情報を使用してデータベースに接続します。最初のステップは、データベースに接続するためのコードを確認することです:

$id_link = @mysql_connect('localhost', 'affy', 'affy'); このコード行では、ユーザー名とパスワードは両方とも文字列です。価値観。フォーム内の情報を使用するには、値の代わりに変数を使用して、このコード行を変更する必要があります。

$id_link = @mysql_connect(
'localhost',
$username,
$password);変数を使用する場合は、変数を初期化する必要があります。次のコードはこの初期化を実行します:

if ( count($arr_request) ) {
$username = $arr_request['username'];
$password = $arr_request['password'];
else {
$ username = 'phpuser';
$password = 'phpuser';

フォーム情報が利用可能な場合、関数 count の結果は 1 より大きくなり、if ステートメントは true 条件節を実行します。ターンは $arr_request 配列から開始します。 ユーザー名とパスワードの情報を から取得します。
フォーム情報が存在しない場合でも、ユーザー名とパスワードを文字列値で初期化できます。
3 番目の可能性は、フォームにこれら 2 つのフィールドがあるものの、フォーム情報がない場合です。 connect.php3 を呼び出すフォームにユーザー名とパスワードのフィールドがない場合はどうなりますか?その場合、上記のコードは失敗します。 $arr_request 配列内の要素の数だけに依存するのではなく、フォーム フィールドを直接チェックすることで、このコードをより堅牢にする (つまり、この環境での障害を処理できるようにする) ことができます。例:

$username = $arr_request['username'];
$password = $arr_request['password'];

if (empty($username)) $username = 'phpuser'; $ パスワード)) $パスワード = 'phpuser';PHP は初期化されていない配列要素に対して空の文字列を返すため、上記のコードは適応性が高くなります。配列ではなくスカラーを使用すると、コードが理解しやすくなり、ある意味ではより効率的になります。これら 2 つの変数のいずれかが空の場合は、フォームに値が提供されていないことを意味し、デフォルト値が使用されます。
リスト 5.3 は、上記の変更を加えた connect.php3 ファイルを示しています。コンテキスト内でこれら 2 つの変更の説明を確認できます。

リスト 5.3 connect.php3 リビジョン

ページ 112 - 113 リスト 5.3


図 5.2 に示すように正しい root パスワードをフォームに入力すると、データベース接続が正常に確立されます。


ページ 113、図 5.2

図 5.2 データベース接続が正常に確立されたことを確認する

5.5 common.inc ファイル
リスト 5.4 は、この章で必要な common.inc ファイルのバージョンを示しています。

リスト 5.4 common.inc - 複数のアプリケーションで使用されるルーチンのセット。
function affy_footer() {
echo '';
}

function affy_header($title) {
echo '< title>';
echo "$title";
echo '';
}
function affy_message($msg) {
echo ';
echo ''
}
?> ;

5.6 概要
この章では、PHP を使用してデータベースに接続する方法を紹介します。最初のステップは、データベースに接続するためのスクリプトを実行するために使用できる Web メニュー ページを作成し、接続を作成することです。データベースに接続できるphp3ファイル。
connect.php3 ファイルが affy ユーザー名を使用してデータベースに接続しようとすると失敗し、root ユーザーのパスワードを必要とするフォームが表示されます。
フォーム内の情報は、common.inc ファイルを通じて $arr_request 配列に配置されます。さらに、変数 $arr_request のユーザー名とパスワードを使用してデータベースに接続するように connect.php3 ファイルを変更しました。






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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

See all articles
';
echo '