ホームページ バックエンド開発 PHPチュートリアル PHP で MySQL にデータを送信する方法

PHP で MySQL にデータを送信する方法

Aug 08, 2016 am 09:33 AM
first mysql name nbsp print

PHP で MySQL にデータを送信する方法

HTML フォームについてはよく知っている必要があります。次のコードは非常に単純な HTML フォームです。




< フォームアクション=submitform.php3 メソッド=GET>
姓: < 入力タイプ=テキスト 名前=名 サイズ=25 最大長=25>
名前: < 入力タイプ=テキスト 名前=姓 サイズ=25 最大長=25>
<

<入力タイプ=送信>
< /フォーム>

< /html>
データを入力して送信ボタンを押すと、このフォームはデータを submitform.php3 に送信します。この PHP スクリプトは、受信したデータを処理します。submitform.php3 のコードは次のとおりです。


< ?php

MySQL_connect (ローカルホスト、ユーザー名、パスワード);


mysql_select_db (データベース名);
mysql_query ("INSERT INTO テーブル名 (first_name, last_name)

値 ('$first_name', '$last_name')

");

PRint ($first_name);
印刷 (" ");
印刷 ($last_name);
print ("

");
print (「登録フォームにご記入いただきありがとうございます」);
?>


< /html>
コードの 3 行目の「ユーザー名」と「パスワード」は、それぞれ MySQL データベースにログインするためのアカウント番号とパスワードを表します。 5行目の「dbname」はMySQLデータベースの名前を表します。 13行目の「tablename」はデータベース内のテーブルの名前です。

送信を押すと、入力した名前が新しいページに表示されます。ブラウザの URL バーをもう一度見てください。その内容は次のようになります。
… /submitform.php3?first_name=フレッド&last_name=フリントストーン

フォームの GET メソッドを使用しているため、データは URL 経由で submitform.php3 に送信されます。明らかに、GET メソッドには制限があります。転送するコンテンツが多い場合、GET は使用できず、POST メソッドのみが使用できます。ただし、どのような方法を使用しても、データ転送が完了すると、PHP はフォーム内の各フィールドの名前 (フォームの name 属性) と同じ変数を自動的に作成します。

このように、PHP 変数はすべてドル記号で始まります。submitform.php3 スクリプトの処理中に、変数の内容は $first_name と $last_name になります。

入力した名前が実際にデータベースに登録されているか確認してみましょう。 MySQL を起動し、mysql> プロンプトに次のように入力します。
mysql> テーブル名から * を選択します。
入力した内容を含むテーブルを取得できるはずです:

+----------------+----------------+

| 姓 |
+----------------+----------------+

| 劉峰

+----------------+----------------+

1 行セット (0.00 秒)

submitform.php3 がどのように機能するかを分析してみましょう:

スクリプトの最初の 2 行は次のとおりです:

mysql_connect (ローカルホスト、ユーザー名、パスワード);


mysql_select_db (データベース名);
これら 2 つの関数呼び出しは、MySQL データベースを開くために使用されます。特定のパラメーターの意味はすでに述べたとおりです。

次の行は SQL ステートメントを実行します:

mysql_query ("INSERT INTO テーブル名 (first_name, last_name)

値 ('$first_name', '$last_name')

");

mysql_query 関数は、選択したデータベースに対して SQL クエリを実行するために使用されます。 mysql_query 関数では任意の SQL ステートメントを実行できます。実行する SQL ステートメントは文字列として二重引用符で囲み、その中の変数は一重引用符で囲む必要があります。

注意すべき点が 1 つあります。MySQL ステートメントはセミコロン (;) で終わる必要があり、PHP コードの行にも同じことが当てはまりますが、PHP スクリプト内の MySQL ステートメントにはセミコロンを含めることはできません。つまり、mysql> プロンプトで MySQL コマンドを入力するときは、セミコロンを追加する必要があります。
INSERT INTO テーブル名 (first_name, last_name)

VALUES ('$first_name', '$last_name');
ただし、このコマンドが PHP スクリプトに含まれる場合は、セミコロンを削除する必要があります。その理由は、SELECT や INSERT などの一部のステートメントはセミコロンの有無にかかわらず機能するためです。ただし、UPDATE など、セミコロンを追加すると機能しないステートメントもあります。トラブルを避けるために、このルールを覚えておいてください。

PHP を使用して MySQL からデータを抽出する方法

ここで、このタスクを実行するための別の HTML フォームを作成します:



< フォームアクション=searchform.php3 メソッド=GET>
クエリを入力してください:

<

姓: < 入力タイプ=テキスト 名前=名 サイズ=25 最大長=25>
<

名前: < 入力タイプ=テキスト 名前=姓 サイズ=25 最大長=25>
<

<入力タイプ=送信>
< /フォーム>

< /html>
同様に、このフォームを処理するための php スクリプトもあります。searchform.php3 ファイルを作成しましょう。


< ?php

mysql_connect (ローカルホスト、ユーザー名、パスワード);


mysql_select_db (データベース名);
if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

$result = mysql_query ("SELECT * FROM テーブル名

WHERE first_name LIKE '$first_name%'

そして、last_name は「$last_name%」のように

");

if ($row = mysql_fetch_array($result)) {

してください{

$row["first_name"] を印刷します

印刷 (" ");
$row["姓"] を印刷します

print ("

");
while($row = mysql_fetch_array($result));
} else {print "申し訳ありませんが、データベース内に一致するレコードが見つかりませんでした。";}

?>


< /html>
取得したいコンテンツをフォームに入力して「送信」ボタンを押すと、一致するすべての検索結果をリストする新しいページが表示されます。このスクリプトが検索タスクをどのように完了するかを見てみましょう。

前のステートメントは上記と同じです。まず、データベース接続を確立し、次にデータベースとデータ テーブルを選択します。これらはすべてのデータベース アプリケーションに必要です。次に、次のような文がいくつかあります:

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%';}

これらの行は、フォームの各フィールドが空かどうかを確認するために使用されます。 2 つの等号に注意してください。PHP の構文のほとんどは C 言語から派生したものであり、ここでの等号の使用法も C の場合と同じです。1 つの等号は代入記号であり、2 つの等号は論理演算子を表します。平等。また、IF の後の条件が true の場合、実行される後続のステートメントは「{」と「}」に配置され、ステートメントの終わりを示すために各ステートメントの後にセミコロンを追加する必要があることにも注意してください。

パーセント記号 % は SQL 言語のワイルドカード文字です。ある点を理解すると、これら 2 行の意味がわかるはずです。「FIRST_NAME」フィールドが空の場合、すべての FIRST_NAME がリストされます。次の 2 つの文は同じ意味です。

$result = mysql_query ("SELECT * FROM テーブル名

WHERE first_name LIKE '$first_name%'

そして、last_name LIKE '$last_name%'"

");

この行は、検索のほとんどの作業を行います。 mysql_query 関数はクエリを完了すると、整数フラグを返します。

クエリは、first_name 列が $first_name 変数と同じであり、last_name 列と $last_name 変数の値も同じであるレコードをすべてのレコードから選択し、それらを一時レコード セットに入れ、返された整数を次のように使用します。このレコードセットのマーク。

if ($row = mysql_fetch_array($result)) {

してください{

$row["first_name"] を印刷します

印刷 (" ");
$row["姓"] を印刷します

print ("

");
while($row = mysql_fetch_array($result));
} else {print "申し訳ありませんが、データベースに一致するレコードが見つかりませんでした。";}

これが最後のステップであり、表示部分です。 mysql_fetch_array 関数は、まずクエリ結果の最初の行の内容を抽出し、次に PRINT ステートメントを使用してそれを表示します。この関数のパラメータは、mysql_query 関数によって返される整数フラグです。 mysql_fetch_array が正常に実行されると、レコード セット ポインタは自動的に下に移動し、mysql_fetch_array が再度実行されると、レコードの次の行の内容が取得されます。

配列変数 $row は mysql_fetch_array 関数によって作成され、配列の各コンポーネントがクエリ結果の各フィールドに対応します。

一致するレコードが見つかった場合、変数 $row は空ではなく、中括弧内のステートメントが実行されます:

してください{

$row["first_name"] を印刷します

印刷 (" ");
$row["姓"] を印刷します

print ("

");
while($row = mysql_fetch_array($result));
これは do ... while ループです。 while ループとの違いは、最初にループ本体を実行し、次にループ条件が満たされているかどうかを確認することです。レコード セットが空ではない場合、ループ本体を少なくとも 1 回実行する必要があることはすでにわかっているため、while ループの代わりに do...while を使用する必要があります。中括弧内は実行されるループ本体です:

$row["first_name"] を印刷します

印刷 (" ");
$row["姓"] を印刷します

print ("

");
次のステップは、while 条件が満たされているかどうかを確認することです。 Mysql_fetch_array 関数が再度呼び出され、現在のレコードの内容が取得されます。このプロセスはループを続けます。次のレコードが存在しない場合、mysql_fetch_array は false を返し、ループは終了し、レコード セットが完全に走査されます。

mysql_fetch_array($result) によって返される配列は、フィールド名によって呼び出すことができるだけでなく、一般的な配列と同様に添字によって参照することもできます。このように、上記のコードは次のように書くこともできます:

$row[0] を印刷します

印刷 (" ");
$row[1] を印刷します

print ("

");
echo 関数を使用して、これら 4 つのステートメントをよりコンパクトに記述することもできます:

echo $row[0], " ", $row[1], "< p>";
一致するレコードが見つからない場合、$row にはコンテンツが存在せず、if ステートメントの else 節が呼び出されます:

else {print "申し訳ありませんが、データベース内に一致するレコードが見つかりませんでした。";}

上記では、PHP で MySQL にデータを送信する方法を、関連する側面も含めて紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

MySQLユーザーとデータベースの関係 MySQLユーザーとデータベースの関係 Apr 08, 2025 pm 07:15 PM

MySQLデータベースでは、ユーザーとデータベースの関係は、アクセス許可と表によって定義されます。ユーザーには、データベースにアクセスするためのユーザー名とパスワードがあります。許可は助成金コマンドを通じて付与され、テーブルはCreate Tableコマンドによって作成されます。ユーザーとデータベースの関係を確立するには、データベースを作成し、ユーザーを作成してから許可を付与する必要があります。

mysqlは支払う必要がありますか mysqlは支払う必要がありますか Apr 08, 2025 pm 05:36 PM

MySQLには、無料のコミュニティバージョンと有料エンタープライズバージョンがあります。コミュニティバージョンは無料で使用および変更できますが、サポートは制限されており、安定性要件が低く、技術的な能力が強いアプリケーションに適しています。 Enterprise Editionは、安定した信頼性の高い高性能データベースを必要とするアプリケーションに対する包括的な商業サポートを提供し、サポートの支払いを喜んでいます。バージョンを選択する際に考慮される要因には、アプリケーションの重要性、予算編成、技術スキルが含まれます。完璧なオプションはなく、最も適切なオプションのみであり、特定の状況に応じて慎重に選択する必要があります。

RDS MySQL Redshift Zero ETLとの統合 RDS MySQL Redshift Zero ETLとの統合 Apr 08, 2025 pm 07:06 PM

データ統合の簡素化:AmazonrdsmysqlとRedshiftのゼロETL統合効率的なデータ統合は、データ駆動型組織の中心にあります。従来のETL(抽出、変換、負荷)プロセスは、特にデータベース(AmazonrdsmysQlなど)をデータウェアハウス(Redshiftなど)と統合する場合、複雑で時間がかかります。ただし、AWSは、この状況を完全に変えたゼロETL統合ソリューションを提供し、RDSMYSQLからRedshiftへのデータ移行のための簡略化されたほぼリアルタイムソリューションを提供します。この記事では、RDSMysQl Zero ETLのRedshiftとの統合に飛び込み、それがどのように機能するか、それがデータエンジニアと開発者にもたらす利点を説明します。

MySQLのユーザー名とパスワードを入力する方法 MySQLのユーザー名とパスワードを入力する方法 Apr 08, 2025 pm 07:09 PM

MySQLのユーザー名とパスワードを入力するには:1。ユーザー名とパスワードを決定します。 2。データベースに接続します。 3.ユーザー名とパスワードを使用して、クエリとコマンドを実行します。

MySQLのクエリ最適化は、特に大規模なデータセットを扱う場合、データベースのパフォーマンスを改善するために不可欠です MySQLのクエリ最適化は、特に大規模なデータセットを扱う場合、データベースのパフォーマンスを改善するために不可欠です Apr 08, 2025 pm 07:12 PM

1.正しいインデックスを使用して、データの量を削減してデータ検索をスピードアップしました。テーブルの列を複数回検索する場合は、その列のインデックスを作成します。あなたまたはあなたのアプリが基準に従って複数の列からのデータが必要な場合、複合インデックス2を作成します2。選択した列のみを避けます。必要な列のすべてを選択すると、より多くのサーバーメモリを使用する場合にのみサーバーが遅くなり、たとえばテーブルにはcreated_atやupdated_atやupdated_atなどの列が含まれます。

高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? 高負荷アプリケーションのMySQLパフォーマンスを最適化する方法は? Apr 08, 2025 pm 06:03 PM

MySQLデータベースパフォーマンス最適化ガイドリソース集約型アプリケーションでは、MySQLデータベースが重要な役割を果たし、大規模なトランザクションの管理を担当しています。ただし、アプリケーションのスケールが拡大すると、データベースパフォーマンスのボトルネックが制約になることがよくあります。この記事では、一連の効果的なMySQLパフォーマンス最適化戦略を検討して、アプリケーションが高負荷の下で効率的で応答性の高いままであることを保証します。実際のケースを組み合わせて、インデックス作成、クエリ最適化、データベース設計、キャッシュなどの詳細な主要なテクノロジーを説明します。 1.データベースアーキテクチャの設計と最適化されたデータベースアーキテクチャは、MySQLパフォーマンスの最適化の基礎です。いくつかのコア原則は次のとおりです。適切なデータ型を選択し、ニーズを満たす最小のデータ型を選択すると、ストレージスペースを節約するだけでなく、データ処理速度を向上させることもできます。

酸性特性を理解する:信頼できるデータベースの柱 酸性特性を理解する:信頼できるデータベースの柱 Apr 08, 2025 pm 06:33 PM

データベース酸属性の詳細な説明酸属性は、データベーストランザクションの信頼性と一貫性を確保するための一連のルールです。データベースシステムがトランザクションを処理する方法を定義し、システムのクラッシュ、停電、または複数のユーザーの同時アクセスの場合でも、データの整合性と精度を確保します。酸属性の概要原子性:トランザクションは不可分な単位と見なされます。どの部分も失敗し、トランザクション全体がロールバックされ、データベースは変更を保持しません。たとえば、銀行の譲渡が1つのアカウントから控除されているが別のア​​カウントに増加しない場合、操作全体が取り消されます。 TRANSACTION; updateaccountssetbalance = balance-100wh

mysqlをコピーして貼り付ける方法 mysqlをコピーして貼り付ける方法 Apr 08, 2025 pm 07:18 PM

MySQLのコピーと貼り付けには、次の手順が含まれています。データを選択し、Ctrl C(Windows)またはCMD C(MAC)でコピーします。ターゲットの場所を右クリックして、貼り付けまたはCTRL V(Windows)またはCMD V(MAC)を使用します。コピーされたデータは、ターゲットの場所に挿入されるか、既存のデータを置き換えます(データが既にターゲットの場所に存在するかどうかに応じて)。

See all articles