PHP_PHP チュートリアルを使用して MySQL にデータを送信する方法

WBOY
リリース: 2016-07-21 16:02:38
オリジナル
835 人が閲覧しました

次のコードは、非常に単純な HTML フォームです。 : < 入力タイプ=テキスト名=最初の名前=25>

< 入力タイプ= submit> /form>

< /body>

< /html>

データを submitform.php3 に送信します。この PHP スクリプトは、submitform.php3 のコードを次に示します。

< mysql_select_db(dbname); "first_name、last_name) " ");

print ("< p>");

< ;

< /html>

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

送信を押すと、入力した名前が新しいページに表示されることがわかります。ブラウザの URL バーをもう一度見てください。その内容は次のようになります:

…/submitform.php3?first_name=Fred&last_name=Flintstone

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

PHP 変数はすべてドル記号で始まります。このように、submitform.php3 スクリプトの処理中に、$first_name と $last_name という 2 つの変数が存在し、変数の内容が入力されます。

入力した名前が実際にデータベースに入力されているか確認してみましょう。 MySQL を起動し、mysql> プロンプトで次のように入力します:

mysql> select * from tablename; 入力した内容のテーブルを取得できるはずです:

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

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

| ルーフェン

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

1 行 (0.00 秒)

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

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



mysql_select_db (dbname); これらの 2 つの関数呼び出しが使用されます。 MySQL データベースについては、特定のパラメータの意味について説明しました。

次の行は SQL ステートメントを実行するものです:

mysql_query ("INSERT INTO tablename (first_name, last_name)

VALUES ('$first_name', '$last_name')

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

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

INSERT INTO tablename (first_name, last_name)

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

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

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

< p>

姓: < 入力タイプ=名前= 最大長=25>

名: < name=last_name size=25 maxlength=25>
同様に、このフォームを処理する php スクリプトもあります:

< body<

mysql_connect (localhost、ユーザー名、パスワード);


mysql_select_db (データベース名);

if ($first_name == "")

{$first_name = '%';}

if ($last_name == "")

{$last_name = '%' ;}

$result = mysql_query ("SELECT * FROM tablename

WHERE first_name LIKE '$first_name%'

AND last_name LIKE '$last_name%'

") ;

if ($row = mysql_fetch_array($re sult )) {

print $row["first_name"];

print $row["last_name"];

print ("< p>");

} while($row = mysql_fetch_array($result));

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

?>

< /body>

< /html>

フォームに取得したい内容を入力して送信ボタンを押すと、新しいページが表示されます。一致するすべての検索結果をリストします。このスクリプトが検索タスクを完了する方法を見てみましょう。最初にデータベース接続を確立し、次にデータ テーブルを選択します。次に、次のようなステートメントがいくつかあります:

if ($first_name == "")

{$first_name = '%';}

if ($last_name = = "")

{$last_name = '%';}

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

少し理解すると、これら 2 つの行がわかるはずです。意味は次のとおりです。「FIRST_NAME」フィールドが空の場合、次の 2 つの文は同じ意味になります。

$result = mysql_query ("SELECT * FROM tablename

WHERE first_name LIKE '$first_name%. '

AND last_name LIKE '$last_name%'"

");

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

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

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

do {

print $row["first_name"];

print $row["last_name"]; print ("< p>");

} 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 は空ではなく、中括弧内のステートメントが実行されます。

do {

print $row["first_name"]

print (" " ) ;

print $row["last_name"];

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

print $row["first_name"];

print $row["last_name"]; ; p> ;");

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

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

print $row[0];

print ("< p>" );

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

echo $row[0], " ", $row[1], "< p>"; is が見つかった場合、$row には内容がなく、if ステートメントの else 節が呼び出されます:

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




http://www.bkjia.com/PHPjc/316542.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/316542.html

技術記事

HTML フォームについてはよく知っているはずです。次のコードは非常に単純な HTML フォームです。 html body form action=submitform.php3 method=GET Last name: input type=text name=first...

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