ホームページ  >  記事  >  バックエンド開発  >  暗記しながらPHPを学ぶ - (16) PHPはMySQL拡張ライブラリを使用してデータベースを操作します

暗記しながらPHPを学ぶ - (16) PHPはMySQL拡張ライブラリを使用してデータベースを操作します

WBOY
WBOYオリジナル
2016-06-23 13:43:00771ブラウズ

PHP は多くの拡張ライブラリを提供しています。ここで話しているのは MySQL 拡張ライブラリの使用ですが、MySQL 拡張ライブラリを使用して書かれたコードに実行時の警告プロンプト。本当はもう一つ直接書きたかったのですが、これがベースになっている気がします。 MySQL 拡張ライブラリというと、多くの関数がライブラリを構成することを当然考えます。拡張ライブラリを使用するということは、そのライブラリ内の関数を使用することを意味します。 MySQL 拡張ライブラリは完全にプロセス指向であり、明らかにオブジェクト指向の特性に準拠していないため、放棄されたのは理解できます。早速、本題に入りましょう。

1. MySQL 拡張ライブラリを使用してデータベースを操作する PHP の概略図

この図は私が描いたものであり、不正確である可能性があります。

MySQL を使用してデータベースを操作するには、大まかに 5 つの手順を実行することがわかります:

1. MySQL サーバーに接続します

ここで使用する関数は mysql_connect() 関数です

2.ここで使用されるのは mysql_select_db(); 関数

3. SQL ステートメントの実行

ここでは mysql_query() 関数が使用されます。いわゆる SQL ステートメントは、追加、削除、変更、およびクエリ操作です。

4. 結果セットを閉じる

ここでは、mysql_free_result() 関数を使用してシステム リソースを解放します

ここでは、mysql_close() 関数を使用します

2.詳細

1. MySQL サーバーへの接続

mysql_connect() 関数の構文は次のとおりです:

resource mysql_connect([string server[,string username[,string passwd[,bool new_link[,int client_flags]]]]] );

これは最も完全な関数パラメータですが、これを使用するときは最初の 3 つのパラメータだけを使用します。

最初のサーバーは MySQL サーバーを指し、デフォルトのローカルホストを使用できます。

2 番目のユーザー名は、データベースのインストール時に設定したユーザー名です。デフォルトは root です。

3 番目のパスワードはデータベースのパスワードです。

接続が成功すると MySQL 接続 ID が返され、それ以外の場合は false が返されます。

たとえば、自分のデータベースに接続する場合、サーバーは localhost、ユーザー名は root、パスワードは root です。次のようにテストできます

<?php	$host = 'localhost';	$username = 'root';	$password = 'root';	if($conn = mysql_connect($host,$username,$password)){		echo "连接MySQL服务器成功";	}else{		echo "连接失败";	}

2. データベースを選択します

bool mysql_select_db(string database_name[,resource link_identifier]);

最初のパラメータ database_name は、接続するデータベースの名前です。

2 番目のパラメータ link_identifier はデータベース接続識別子で、MySQL サーバーへの上記の接続が成功した後に返される値です。書き込まれない場合、デフォルトで最後に開かれたデータベース接続が使用されます。書くことをお勧めします。

成功した場合は true を返し、失敗した場合は false を返します。

たとえば、前回作成したテスト データベースに接続する必要がある場合は、次のように記述できます:
<?php	$host = 'localhost';	$username = 'root';	$password = 'root';	$database_name = 'test';	$conn = mysql_connect($host,$username,$password);	if(mysql_select_db($database_name,$conn)){		echo "数据库连接成功";	}else{		echo "连接失败";	}


3. SQL ステートメントを実行します

いわゆる SQL ステートメントは追加、削除です。 、データベースに対する変更およびクエリ操作。コマンドラインを使用してデータベースを操作する場合に導入されています。関数の構文は次のとおりです:

resource mysql_query(string query[,resource link_identifier]);

最初のパラメータは、実行する必要がある SQL ステートメントです。

2 番目のパラメータは、mysql_connect によって返される接続 ID です。書くことをお勧めします。

SQL ステートメントは、ddl [データ定義ステートメント]、dml [更新、挿入、削除などのデータ操作ステートメント]、dql [選択]、dtl [データ トランザクション ステートメントのロールバック コミット] に分かれており、最もよく使用されるのはdqlステートメント、つまりクエリステートメントです。 dql ステートメントの実行が成功すると、「データ ポインタ」が返され、失敗すると true が返されます。

たとえば、テーブルに現在どのようなデータがあるかをクエリしたい場合は、次のように記述できます。

<span style="font-size:14px;"><?php	$host = 'localhost';	$username = 'root';	$password = 'root';	$database_name = 'test';	$conn = mysql_connect($host,$username,$password);	mysql_select_db($database_name,$conn);	$sql = "select * from tb_student;";	$query = mysql_query($sql,$conn);	while($res = mysql_fetch_assoc($query)){		echo $res['id'].'--'.$res['name'].'--'.$res['email'].'--'.$res['address'].'--'.$res['age'].'<br>';	}</span>

SQL ステートメントを変更するだけで、追加、削除、変更の例はありません。次に、true または false を返します。結果セットを取得する必要はありません。

4. 結果セットを閉じる
mysql_free_result(resource $res);

たとえば、上記の作業を完了したら、結果セットを閉じることができます、mysql_free_result($query);

5.

mysql_close( resource $link_identifier);

たとえば、上記のプログラムの最後で、mysql_close($conn); と切断できます

3. 包括的なケースを次に示します

<?php     //mysql扩展库操作数据库步骤如下     //1.获取连接     $conn = mysql_connect("localhost","root","root");     if(!$conn){          die("连接失败".mysql_error);     }     //2.选择数据库     mysql_select_db("mr_mysql");     //3.设置操作编码(建议有)     mysql_query("set names utf8");     //4.发送指令sql (ddl【数据定义语句】 ,dml【 数据操作语句,如update,insert,delete】,dql【 select】 ,dtl【数据事务语句 rollback commit】)     $sql = "select * from mr_user;";     $res = mysql_query($sql,$conn);//返回的数据‘指针’不是指到了第一行,而是指到第一行的前一行,也就是第0行。     //var_dump($res);         //5.接收返回的结果,并处理         while($row = mysql_fetch_row($res)){   //mysql_fetch_row()是返回结果集的下一行并赋值给$row          //$row 是一个数组          //第一种取法:$row[i]          echo "<br>";          //echo "$row[0]--$row[1]--$row[2]--$row[3]--$row[4]";          //var_dump($row);          //第二种取法          foreach($row as $key=>$value){               echo "$value--";          }              }     //6.释放资源     mysql_free_result($res);     mysql_close($conn);  //这句可以不写,建议写
4. 詳細

1. $res 結果セットを使用した後は、必ずリソースを解放してください
2. mysql_close() がない場合、システムは自動的にシャットダウンします
3. mysql_close が while の前に置かれると、 mysql_query ステートメントの実行後、プログラムはデータベースをメモリに読み取り、再度使用するときはメモリから読み取るため、結果には影響しません。ただし、mysql_free_result を前に置くとエラーが発生します。
4.$rowは配列です
5.$resはdql文を実行するとリソース型を返しますが、dml文を実行するとbool値を返します

6. $resからロウデータを取得する場合はさらにto mysql_fetch_row($res)[インデックス配列を返す] メソッドは 3 つあります。 to mysql_fetch_row($res) ---------- インデックス配列と連想配列を返すには、メモリを使用しないことをお勧めします。 Mysql_fetch_object($res) --------データの行をオブジェクトとして返す

My SQL 拡張機能を使用する これでライブラリ操作データベースはほぼ完成です。 Mysqli 拡張ライブラリを使用してデータベースを操作するための基礎 次の記事では、Mysqli 拡張ライブラリの操作データベースについて説明します。













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