ホームページ > php教程 > php手册 > PHP と MySQL の入門

PHP と MySQL の入門

WBOY
リリース: 2016-06-21 09:10:59
オリジナル
1131 人が閲覧しました

mysql|初心者

PHPとMySQLを使いたいのですが、どのようにインストールして実行すればよいですか?シンプルな
PHP-MySQL アプリケーションを動作させるために知っておくべき最も基本的なことは何ですか?

これは基本的なチュートリアルです。変なコードはなく、基本的なものだけです。

もう 1 つ、現在は UNIX マシンに基づいたチュートリアルが多数ありますが、このチュートリアルでは Windows ベースのプラットフォームに焦点を当てます。ただし、多かれ少なかれ Windows 固有の手順が含まれる
インストール部分を除いて、他の部分はすべてのプラットフォームで同じです。

このチュートリアルでは、PHP と MySQL の次の機能を使用して、段階的に小さな Web サイトを構築します。

1. データベースを表示します。
2. データベースのレコードを編集します。データベース;
4. データベース内のレコードを削除します。

MySQLとPHPを同時に学び、一緒に感じていきます。

セクション 1 - 必要なアイテムを集めて構築する

それでは、作業を始めましょう。 PHP-MySQL を開始するには、いくつかの準備が必要です。

1. Web サーバーを実行します。
2. PHP 拡張機能を追加します。
3. MySQL を実行します。

ステップ 1、Web サーバーを取得してインストールします

マシン上で既に Web サーバーが実行されていると仮定しましょう。 Windows には便利な Web サーバー アプリケーション
がいくつかあります。注意すべき点の 1 つは、php/mysql を実行するには、選択した Web サーバーが拡張機能をサポートできる必要があるということです。

Windows にインストールする最も簡単なサーバーの 1 つは OmniHTTPd (http://www.omnicron.ab.ca/httpd/、非常に優れた無料 Web サーバーです。)

サイトから入手したら、ファイルをインストールしますをダブルクリックして、Web サーバーをインストールします。インストール中に [デフォルトを使用] を選択した場合は、インストールが成功すると、インストーラーによって Web サーバーが起動し、新しいアイコンが表示されます。
Windows システム トレイに表示されます

これで、最初のステップは完了です

2 番目のステップは、PHP ディストリビューションをダウンロードしてインストールすることです

PHP Win32 ディストリビューションを入手するのは非常に簡単です。簡単: にアクセスするだけです。 http://www.php.net/download-php.php3 を選択し、最適な
場所を選択します。OmniHTTPd に PHP をインストールするのは非常に簡単です

まず、インストール ファイルをたとえば c に展開します。 :php

ファイル 'php3.ini-dist' を '%WINDOWS' ディレクトリにコピーし、名前を 'php3.ini' (Win95/98 では c:windows、
WinNT/Win2k では c:) に変更します。 winnt)

をクリックして php3.ini ファイルを編集します。

'extension_dir' 設定を PHP インストール ディレクトリ (c:php) または 'php3_*.dll' が保存されているディレクトリに変更します。 PHP の起動時にロードするモジュール。これらのモジュールをロードするには、「extension=php3_*.dll」行のコメントを解除する必要があります (必ず extension=php3_mysql.dll のコメントを解除してください)。このモジュールには追加のライブラリがシステムにインストールされている必要があります。適切に動作させるには、PHP Q&A (http://www.php.net/FAQ.php3) にサポート ライブラリの入手方法の詳細が記載されています:
dl("php_*.dll") を使用してモジュールを動的にロードします。

PHP 拡張ライブラリには「php3_」という接頭辞が付けられています。これにより、PHP 拡張機能とそのサポート ライブラリ間の混乱が防止されます。

次に、システム トレイの青い OmniHTTPd アイコンを右クリックします。 [プロパティ] 項目を選択します。

[Web サーバーのグローバル設定] 項目をクリックします。

[仮想] フィールドに「.php3」と入力し、「実際の」フィールドに「c:phpphp.exe」と入力します。 」フィールドを選択し、「追加」をクリックします。

Mimeタブを選択し、「仮想」に「wwwserver/stdcgi」、「実際」に「.php3」と入力し、「追加」をクリックします。

「OK」をクリックします。

同じフォームで「デフォルトの仮想設定」を選択します。

「サーバー」タブをクリックします。

「デフォルトのインデックス」フィールドに「Index.php3」と入力します。これにより、Web サーバーに、index.php3 ファイルも認識されることが通知されます。

「OK」をクリックします。

はい、もう十分です。 PHP が動作しているかどうかをテストしてみましょう:

index.php3 というテキスト ファイルを作成し、次のテキストを記述します:

echo "I made it!"

ブラウザを起動してそれをポイントします。ローカルホストへ。画面に「できました!」と表示されるはずです。

次に、MySQL を入手してインストールします。

http://www.mysql.com/download_win.html に移動し、MySQL-Win32 ディストリビューションをダウンロードし、zip ファイルを一時ディレクトリに解凍して、セットアップ プログラム (setup. EXE)。

デフォルトの標準インストールを選択した場合、すべての MySQL ファイルは c:mysql ディレクトリにインストールされます。

次に、以下の手順に従って、各手順を正しく実行してください。

いくつかのテストを実行します:

まず、c:mysqlbin にある mysqld-shareware.exe デーモンを実行する必要があります。 dos ウィンドウ
が表示され、数秒後に閉じます。エラー メッセージが表示されない場合は、MySQLd はすでに実行されています。

MySQLを確認したい場合は、c:mysqlbinmysqlを実行してください。 「mysql>」プロンプトが表示されたターミナル ウィンドウが表示されます。なるほど、MySQL サーバーと通信できるようになりました。

パート 2 - MySQL データベースの作成と操作:

まず、使用するデータベースとテーブルを作成する必要があります。データベースの名前は「example」、テーブルの名前は「tbl」で、識別番号、名、姓、および情報のフィールドがあります。 mysql ターミナルを介してデータベースの作成とテーブル定義の作業を完了するには、c:mysqlbinmysql.exe をダブルクリックするか実行するだけです。

MySQL でどのテーブルが定義されているかを確認したい場合は、次のコマンドを使用できます (mysql> はターミナル プロンプトであることに注意してください):

Mysql> show Databases; このコマンドは次の情報を表示します。

+----------+
| データベース |
+---------- -- +
2 rows in set (0.01 sec)

新しいデータベース(例)を定義するには、次のように入力します。

Mysql

Query OK、1 行が影響を受けました (0.17 秒)

素晴らしい、新しいデータベースができました。これで、ライブラリに新しいテーブルを作成できますが、最初に新しい
データベースを選択する必要があります:

使用例;

答えは次のようになります:

データベースが変更されました

次のフィールドを持つテーブルが作成されます:

インデックス番号 - 整数
ユーザー名 - 最大長 30 の文字列
ユーザー姓 - 最大長 50 の文字列
無料情報 - 最大長の文字列

MySQL プロンプトで次のコマンドを入力してテーブルを作成します:

MySQL> create table tbl (idx integer(3), UserName varchar(30), LastName varchar(50), FreeText varchar(100));
答えは次のようになります:

Query OK、影響を受ける行は 0 件 (0.01 秒)

MySQL プロンプトからテーブルを表示するとどうなるかを見てみましょう。次のコマンドを入力します。 show columns from tbl ;

次の結果が得られます:


+----------+--------------+-- --+-----+--------+------+ フィールド | デフォルト | -- ---+--------------+------+-----+----------+------ | varchar(30) | はい | NULL |
+----------+------+-----+----- +----- ----+------+
4 rows in set (0.00 sec)


ここでは、作成したばかりのテーブル「tbl」の内容を確認できます。

それでは、表の内容を見てみましょう。次のコマンドを入力します:

MySQL> select * from tbl;

このコマンドは、テーブル "tbl" 内のすべてのデータを表示するために使用されます。出力は次のようになります:

Empty set (0.07 sec)

この結果が得られる理由は、まだテーブルにデータを挿入していないためです。テーブルにデータを挿入して、次のように入力してみましょう:

MySQL> insert into tblvalues (1,'Rafi','Ton','Just a test');
Query OK、1 行が影響を受けます ( 0.04 秒)

上でわかるように、デフォルトの順序が使用されているため、テーブルに挿入する値は、前にテーブルを定義した順序になります。データの順序を設定できる構文は次のとおりです:

MySQL> insert into tbl (idx,UserName,LastName,FreeText) 値 (1,'Rafi','Ton','Just a test') );

それでは、テーブルの内容をもう一度見てみましょう:

MySQL> select * from tbl;

今回の結果は次のようになります:


+- --- -+----------+----------+----------+
| 姓 | |
+ ------+----------+----------+-------------+ 1 |ラフィ | テストです
+-----+----------+----------+---------- --+
1 row in set (0.00 sec)

これでテーブルの構造と各セルの内容が確認できました。

今度はデータを削除したいと思います。これを実現するには、次のように入力する必要があります:

MySQL> delete from tbl where idx=1 limit 1; Query OK, 1 row according to (0.00 sec)

それでは、少し説明してください。 MySQL に、「tbl」テーブルからレコードを削除し、idx フィールド値が 1 のレコードを削除し、
するように指示しています。削除できるレコードは 1 つだけです。削除されるレコードの数を 1 に制限しない場合、idx 1 を持つすべてのレコードが削除されます (この例では
レコードは 1 つだけですが、それでも、これをより明確にしたかっただけです)。

残念ながら、また空のテーブルができてしまったので、もう一度入力してみます:

MySQL> insert into tbl names (1,'Rafi','Ton','Just a test');<クエリは OK、1 行が影響を受けました (0.04 秒)

他にできることは、指定したフィールドの内容を変更し、「update」コマンドを使用することです:

MySQL>update tbl set UserName='Berber' where UserName=' Rafi';
Query OK, 1 row (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

このコマンドは、影響を受けるユーザー名「Rafi」を持つすべてのレコードを検索し、それを「Berber」に変更します。 set 部分と where 部分は異なり、同じである必要があることに注意してください。 1 つのフィールドを検索しても、別のフィールドを変更することができます。さらに、2 つ以上の条件で検索を実行することもできます。

MySQL>update tbl set UserName='Rafi' where UserName='Berber' and LastName='Ton';
クエリ OK、1 行が影響を受けました (0.04 秒)

このクエリは 2 つのフィールドを検索し、変更しましたユーザー名の値。

パート 3 - PHP と MySQL の結合

このパートでは、前に作成した MySQL テーブルを制御するための単純な PHP ベースの Web サイトを構築します。

次のようなサイト構造を構築していきます(HTMLの基本的な知識はすでに知っていると仮定します):

1. フロントエンドでテーブルを表示するためにindex.php3が使用されます
2. にデータを挿入するためにadd.php3が使用されます。 table
3. Modify.php3はテーブル内のレコードを変更するために使用されます
4. del.php3はテーブル内のレコードを削除するために使用されます

まず、データベースを確認します:

以下のスクリプトを見てください。

------------------------------------------------ --------------------------------
Index.php3:


< title>/title>

tbl

からのデータ
mysql_connect() Database への接続の問題");
$query = "select * from tbl";
$result = mysql_db_query("example", $query);

if ($result) {
echo "データベース内に次のエントリが見つかりました:

";
echo "


";

while ($r = mysql_fetch_array($result))
{
$idx = $r["idx"];
$user = $r[ "ユーザー名"];
$last = $r["FreeText"];

echo "$idx ;td>$user

;
}
echo "
ユーザー名< ;/td>

リクエスト日
$last
" ;
}
{
エコー "データがありません。"

('links.x')> html>------------------------------------------------ --------------------------------
さて、ここでいくつかの手順を説明します:

最初に通常の HTML タグを使用します thml を作成します書類。 HTML から PHP に転送する場合は、 を使用して PHP 部分を終了します。

mysql_connect() コマンドは、PHP に MySQL サーバーへの接続を確立するように指示します。接続が正常に確立された場合、スクリプトは続行されます。失敗した場合は、die コマンド情報「データベースへの接続の問題」が出力されます (mysql_connect およびその他の PHP 関数の詳細については、次のリンクを参照してください)。 http://www.php.net)。

さて、上で説明したように MySQL がインストールされていれば、それで十分です。ただし、プリインストールされた MySQL (
ISP など) を使用している場合は、次のコマンドを使用する必要があります:

mysql_connect (localhost, username, password);

MySQL クエリで実行したいものを $query に設定できます。次に、mysql_db_query コマンドを使用してそれを実行します。

$result = mysql_db_query("example", $query);このとき、「example」はデータベース名、$queryは実行するクエリを表します。

テーブルからすべてのデータを取得するには、MySQL コマンド select を使用します:

$query = "select * from tbl"; 実行が成功した場合、$result の役割を簡単に説明します。この関数はクエリ結果の MySQL 結果識別子を返すか、エラーが発生した場合は false を返します。返されるのは結果ではなく識別子であり、後で必要な情報に変換できます。

ここで、データベースにレコードがあるかどうかを確認し、レコードがある場合は、HTML テーブル構造に従って結果を出力します。

データが存在するかどうかを確認するには、if コマンドと次の構文を使用します:

if (引数) {
"何かをする;"
} else {
"違うことをする
}

このとき「何かをする」は引数=trueの場合に実行したいコマンド、「何か違うことをする」は引数=
falseの場合に実行したいコマンドです。

HTMLテーブル構造を確立するために、echoコマンドを使用していくつかのHTMLタグを出力していることに注意してください。 PHP コマンドからのテキスト出力のみが HTML コンテンツとして扱われます。PHP コマンド自体は HTML コンテンツとして扱われません。

使用するもう 1 つのコマンドは while 命令です。形式は次のとおりです。

while (argument)) {
"something to do"
}

argument=true の場合、while ループが継続的に繰り返されます。 is {} 内の一連の命令です。

ここではwhileループとPHP関数$r=mysql_fetch_array($result)を組み合わせています。この関数は、対応する結果識別子
文字に基づいてレコードを取得し、フィールド名を配列の
キーとして使用して、結果を連想配列 $r に配置します。このスクリプトでは、$r['idx']、$r['UserName']、$r['LastName']、
$r['FreeText'] の配列を取得します。

結果を順序付けされた配列に入れる mysql_fetch_row 関数を使用することもできます。$r[0]、$r[1]、
$r[2]、$r[3] を使用して、対応する値。

これらの機能の詳細については、http://www.php.net をご覧ください。

すべての情報が揃ったので、HTML フォームで出力できます:


echo "
$idx
$user< mysql_free_result ($result) 関数を使用して、MySQL 接続を解放し、一部のリソースを解放できます。

PHP のもう 1 つの便利な機能は、スクリプトにテキスト ファイルを含めることができることです。再利用可能なコード (他の
他のページへのリンクなど) があると仮定します。 include 関数を使用すると、コードと時間を節約できます。そして、このコードを変更したい場合は、
含まれるファイルの内容を変更するだけで済み、その変更はそのコードを含むすべてのファイルに反映されます。

ここでは、各ページで使用するすべてのリンク メニューを保存する Links.x というテキスト ファイルを作成します。



  • ホーム add.php3">データベースに新しいエントリを追加
  • エントリを編集
  • データベースからエントリを削除します


    include の構文は次のとおりです:

    Include ('include_text_file'); これで、?> が使用できるようになります。 PHP 部分を閉じ、HTML ページを で終了します。

    フォームを使用してデータを追加する

    次のコードを見てみましょう:

    ---------------------------- -- -----------------------------------------------
    < html>
    データベースにエントリを追加



    < ;





    <

    gt;




    -------------------------------------------------- ------------------------
    フォームに慣れていると仮定すると、これはかなり単純なスクリプトです。 HTML ページに基づいてフォームを設計し、送信後に
    add2tbl.php3 スクリプトを呼び出します。フォームは、MySQL テーブルに対応する 4 つのフィールド (インデックス番号、FirstName、LastName、
    FreeText) で構成されています。このフォームのフィールド名は MySQL テーブルのフィールド名と同じですが、これは便宜上のものであり、必須ではないことに注意してください。

    リンクを追加するには、もう一度 include コマンド を使用します。

    add2tbl.php3 スクリプトを見てみましょう:

    -------------------------------------- ----- --------------------------------------


    if ($UserName)
    mysql_connect() or die ("データベースへの接続の問題"); '$idx','$UserName' ,'$LastName','$FreeText')";
    $result = mysql_db_query("example", $query);

    echo "新しいテーブル:

    ";
    $query = "SELECT * FROM tbl";
    $result = mysql_db_query("example", $query);

    if ($result)
    {
    echo "<テーブル幅=90% align=center border =1


    r = mysql_fetch_array($result))
    {
    $idx = $r["idx"];
    $last = $r["LastName"]; $r["FreeText"];

    echo "



    ";

    } // while ループの終了
    echo "
    インデックス:
    ユーザー名: maxlength=100>
    姓: maxlength=100>
    FreeText:
    gt;<入力タイプ=送信値=追加>
    idx ユーザー名
    $idx $user $last $free
    ";
    }
    else
    {
    echo "データがありません。" ;
    } // if ($result ) の終わり
    }
    else
    {
    echo "ユーザー名が入力されていません。戻ってユーザー名を再入力してください"
    } // if end($UserName)

    echo "; ;

    ";

    include ('links.x');

    ?>


    ------------- ----------- -------------------------------------- ----------- ------
    説明:

    このパートには 2 つの主要なパートが含まれています。最初の部分は、前のフォームからデータを取得し、データベースに挿入します。パート 2
    データベースからテーブルの内容を出力します。 2 番目の部分は、「データベースの表示」セクションで説明したものと同じです。

    パート 1:

    まず、mysql_connect() を使用して、通常どおりデータベースに接続します。

    次に、次のクエリを使用します:

    $query = "insert into tbl names ('$idx','$','$LastName','$FreeText')"; このクエリはから渡されます。前の形式 $idx、$UserName、$LastName、$FreeTEXt 変数を
    tbl テーブルに挿入します。

    台本内で私が行ったコメントに注目してください。 「//」を含むコメントを使用すると、サーバーは行の残りの部分を無視します。

    シンプルですね。

    データベースからレコードを編集するには:

    データベースに存在するレコードを変更するとします。前に、データベースに存在するフィールドの値を設定するために使用される set という SQL コマンドがあることを説明しました。このコマンドを使用して、データベース内のレコード全体を変更します。

    次のスクリプトを考えてみましょう:
    ------------------------------------------ ------ -------------------------------------
    edit.php3:

    データベースからのエントリの編集



    エントリを編集



    mysql_connect() or die (「データベースへの接続の問題」);
    $query = "tbl から * を選択";
    $result = mysql_db_query("例", $query);

    if ($result)
    {
    echo "データベースでこれらのエントリが見つかりました:
    ";
    echo "





    while ($r = mysql_fetch_array($result))
    {
    $idx = $r["idx"];
    $user = $r["ユーザー名"];
    $last = $r["姓"];
    $text = $r["フリーテキスト"];

    echo "



    }
    echo "
    idx ユーザー名

    $idx< ;/td>
    $user $text
    ";
    }
    else
    {
    echo "データがありません。";
    }

    mysql_free_result($result);
    include ('links.x');

    ?>


    ------------------------------------------ ------------------------------------
    お察しの通り、ここのコードには十分な内容が含まれています。データベース内のテーブルの内容のみが出力されます。 ;

    この一行は、editing.php3 への接続を確立し、新しいスクリプトからいくつかの量を伝達しています。同じ表形式の例ですが、
    のみが使用されています。 、「 シンボルを印刷するには、サーバー
    が PHP スクリプトの一部として表示され、印刷される情報として表示されるかどうか」を使用する必要があります。中の詳細なデータは、私たちが簡単に修正できるようにするためのものです。

    --------------------------------- ----------------------------------------
    Editing.php3 :


    エントリの編集



    エントリを編集




    <表の幅=90% 整列=中央>

    idx:

    ユーザー名:value="">

    LastName:value="">

    フリーテキスト:value="">>;



    ">





    ------------------------------------------ ------------------------------------
    いいですね、この脚本は最高です。表が印刷されると、type= > を介して、現在のデータが承認されます。 これらのデータは、前のページから転送されます。ここで、記録された情報を変更しない場合、デフォルト値である現在の値が返されます。フィールドの値を変更すると、フィールド
    の値が新しい値になります。次に、新しい値を別のスクリプトに渡すと、MySQL テーブルの値が変更されます。

    ------------------------------------------------ --------------------------------
    editdb.php3:


    mysql_connect() or die ("データベースへの接続の問題");

    $query = "更新テーブルセット
    idx='$idx',UserName='$UserName',LastName='$LastName',FreeText='$FreeText' where
    idx= '$idx'";

    $result = mysql_db_query("example", $query);
    $query = "SELECT * FROM tbl";
    $result = mysql_db_query("example", $query);

    if ( $result)
    {
    echo "データベース内に次のエントリが見つかりました:

    ";
    echo "


    ";

    while ($r = mysql_fetch_array($result))
    {
    $idx = $ r["idx"];
    $user = $r["UserName"];
    $text = $r["FreeText"]; ;

    t

    ;

    ?>------------------------------------------ ------------------- ------------------------------- -----
    基本的に注意すべき点は次の行です:

    $query = "update tbl set idx='$idx',UserName='$UserName',LastName='$LastName',FreeText= '$FreeText' where idx='$idx'";

    前の MySQL セクションで説明した同じ構文と同じであることに注意してください。もう 1 つ、このスクリプトは idx=$idx のレコードを変更することに注意してください。
    idx が $idx に等しいレコードがテーブル内に複数ある場合、これらのレコードは変更されます。より厳密にしたい場合は、where 句を次のように変更できます:

    $query = "update tbl set idx='$idx',UserName='$UserName', LastName='$LastName',FreeText= ' $FreeText' where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'";

    この構文は idx だけでなくすべてのフィールドをチェックします。

    データベースからレコードを削除します:

    わかりました、削除は簡単です。まだ 2 つのスクリプトが必要です。1 つは削除するレコードを選択するスクリプト (基本的には上記で編集するレコードを選択するのと同じです)、もう 1 つは実際に削除して新しいテーブルを印刷するスクリプトです。

    ------------------------------------------------ --------------------------------
    del.php3:


    <タイトル&lt&gt; or die ("データベースへの接続の問題");
    $query = "select * from tbl";
    $result = mysql_db_query("example", $query);

    if ($result)
    {
    echo "データベース内のエントリ:

    ";
    echo "
    idx ユーザー名 ;/td>
    フリーテキスト
    $idx $last




    ";

    while ($r = mysql_fetch_array($result))
    {
    $idx = $r["idx"];
    $user = $r["ユーザー名"];
    $last = $r["フリーテキスト"];

    echo "




    }
    echo "
    idx ユーザー名 フリーテキスト
    $idx $user $last $dtext
    ";
    }
    else
    {
    echo "データがありません。"

    mysql_free_result($result);

    ; ;


    ---------------------------------- --------------------------------------------
    このスクリプトはに関連しています使用される編集スクリプトは非常に似ているので、その手順を参照してください。

    ------------------------------------------------ --------------------------------
    dele.php3:


    mysql_connect() or die ("データベースへの接続の問題");
    $query = "idx='$idx' および UserName='$UserName' および
    LastName='$LastName' および FreeText='$FreeText' から削除します"; $result = mysql_db_query("example", $query);
    $query = "SELECT * FROM tbl";

    if ($result)
    {
    echo "データベース内に次のエントリが見つかりました:

    ";
    echo "

    ";

    while ($r = mysql_fetch_array($result))
    {
    $idx = $r["idx "];
    $user = $r["UserName"];
    $last = $r["LastName"];
    $text = $r["FreeText"];

    echo " TD&gt;/td&gt; $&lt; lt; gt; $&lt;/td&gt;
    }
    echo "
    フリーテキスト
    ";
    }
    else
    {
    echo "データがありません。"

    mysql_free_result($result);

    ? >------------------------------------------------ ---- ----------------------------
    このスクリプトは非常に見慣れたものですが、唯一の違いは削除クエリの構文です。

    $query = "delete from tbl where idx='$idx' and UserName='$UserName' and LastName='$LastName' and FreeText='$FreeText'"; このクエリは、渡されたすべての情報を削除します。前のスクリプトの一致するレコード。簡単。

    はい、以上です。








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