ホームページ >バックエンド開発 >PHPの問題 >php は mysql をどのように操作してクエリ結果を取得しますか?

php は mysql をどのように操作してクエリ結果を取得しますか?

coldplay.xixi
coldplay.xixiオリジナル
2020-07-23 14:59:433283ブラウズ

PHP を使用して mysql を操作してクエリ結果を取得する方法: 1. [mysql_fetch_array($rs,MYSQL_ASSOC)] 関数を使用します; 2. [mysql_fetch_array($rs,MYSQL_BOTH);] 関数を使用してクエリ結果を取得します配列。

php は mysql をどのように操作してクエリ結果を取得しますか?

php で mysql を操作してクエリ結果を取得する方法:

1.mysql_fetch_array($rs ,MYSQL_ASSOC )

[@test01 model]# php test.php 
Array 
( 
 [name] => hellokitty 
 [addr] => i dont kno 
) 
[@test01 model]# more test.php 
<?php 
 $link=mysql_connect("10.12.136.181","hello","hello"); 
 if(!$link) 
  echo "没有连接成功!"; 
 mysql_select_db("hhhhh", $link); 
 $q = "SELECT * FROM hello"; 
 mysql_query("SET NAMES GB2312"); 
 $rs = mysql_query($q); 
 if(!$rs) 
 { 
  die("Valid result!"); 
 } 
 $result=mysql_fetch_array($rs,MYSQL_ASSOC); 
 print_r($result); 
 mysql_free_result($rs); 
?>

2.mysql_fetch_array($rs,MYSQL_BOTH);配列を取得します

[@test01 model]# more test.php 
<?php 
 $link=mysql_connect("10.12.136.181","hello","hello"); 
 if(!$link) 
  echo "没有连接成功!"; 
 mysql_select_db("hhhhh", $link); 
 $q = "SELECT * FROM hello"; 
 mysql_query("SET NAMES GB2312"); 
 $rs = mysql_query($q); 
 if(!$rs) 
 { 
  die("Valid result!"); 
 } 
 $result=mysql_fetch_array($rs,MYSQL_ASSOC); 
 print_r($result); 
 mysql_free_result($rs); 
?> 
[@test01 model]# vim test.php 
[@test01 model]# php test.php 
Array 
( 
 [0] => hellokitty 
 [name] => hellokitty 
 [1] => i dont kno 
 [addr] => i dont kno 
) 
[@test01 model]#

3.mysql_fetch_array($rs,MYSQL_NUM) ) 配列を取得します

[@test01 model]# php test.php 
Array 
( 
 [0] => hellokitty 
 [1] => i dont kno 
) 
[@test01 model]# more test.php 
<?php 
 $link=mysql_connect("10.12.136.181","hello","hello"); 
 if(!$link) 
  echo "没有连接成功!"; 
 mysql_select_db("hhhhh", $link); 
 $q = "SELECT * FROM hello"; 
 mysql_query("SET NAMES GB2312"); 
 $rs = mysql_query($q); 
 if(!$rs) 
 { 
  die("Valid result!"); 
 } 
 $result=mysql_fetch_array($rs,MYSQL_NUM); 
 print_r($result); 
 mysql_free_result($rs); 
?> 
[@test01 model]#

以下は補足です:

php 結果セットを取得するためのいくつかのメソッド

<?php 
 $conn=mysql_connect("localhost","root",""); 
 $select=mysql_select_db("books",$conn); 
  $query="insert into computers(name,price,publish_data) "; 
 $query.="values(&#39;JSP&#39;,28.00,&#39;2008-11-1&#39;)"; 
 $query="select * from computers"; 
 $result=mysql_query($query); 
  //以下是使用mysql_result()函数来获取到查询结果 
 $num=mysql_num_rows($result); 
 for($rows_count=0;$rows_count<$num;$rows_count++){ 
 echo "书名:".mysql_result($result,$rows_count,"name"); 
 echo "价格:".mysql_result($result,$rows_count,"price"); 
 echo "出版日期:".mysql_result($result,$rows_count,"publish_data")."<br>"; 
 } 
  //以下是使用mysql_fetch_row()函数来获取到查询结果 
  while($row=mysql_fetch_row($result)) 
 { 
 echo "书号:".$row[0]."<br>"; 
 echo "书名:".$row[1]."<br>"; 
 echo "价格:".$row[2]."<br>"; 
 echo "出版日期:".$row[3]."<br>"; 
 echo "<br>"; 
 } 
 //以下是使用mysql_fetch_array()函数来获取到查询结果 
 while($row=mysql_fetch_array($result)) 
 { 
 echo "书号:".$row[0]."<br>"; 
 echo "书名:".$row[1]."<br>"; 
 echo "价格:".$row["price"]."<br>"; 
 echo "出版日期:".$row["publish_data"]."<br>"; 
 echo "<br>"; 
 }
 
//mysql_fetch_assoc()同mysql_fetch_array($result,MYSQL_ASSOC)一样
 
while($row = mysql_fetch_assoc($res)){
 
 echo $row[&#39;price&#39;].&#39;::&#39;.$row[&#39;publish_data&#39;].”;
} //$row[0]不能取值
 
 //以下是使用mysql_fetch_object()函数来获取到查询结果 
 while($row=mysql_fetch_object($result)) 
 { 
 echo "书号:".$row->id."<br>"; 
 echo "书名:".$row->name."<br>"; 
 echo "价格:".$row->price."<br>"; 
 echo "出版日期:".$row->publish_data."<br>"; 
 echo "<br>";  
 } 
?>

総合比較

このセクションでは主にクエリ結果セットを取得する 4 つの関数を紹介し、それらを総合的に比較します。

  • mysql_result(): 利点は使いやすいことですが、欠点は関数が少ないことです。1 回の呼び出しで取得できるレコードは 1 行だけです。大規模なデータベースの場合、効率が低下します。

  • mysql_fetch_row(): 利点は 4 つのメソッドの中で実行効率が最も高いことですが、欠点は属性インデックスとして数値しか使用できないことです。属性値を取得するため、非常に混乱しやすいです。

  • mysql_fetch_array(): 実行効率も非常に高く、mysql_fetch_row() とほぼ同等で、属性名を使用して属性値を直接取得できます。したがって、実際のアプリケーションで最も一般的に使用されます。

  • mysql_fetch_object(): オブジェクト指向の考え方を採用しており、より高度な設計思想が盛り込まれています。読者がオブジェクト指向の考え方でプログラムを書くことに慣れているのであれば、それは自然な選択でしょう。第 2 に、この方法の利点は、より複雑な構造のデータ結果が論理的に明確になることです。

最後の 3 つの関数に共通するのは、すべて現在の行のデータを取得し、自動的に次の行にスライドすることです。場合によっては、スライドする行の数を制御する必要があります。よく一緒に使用される関数は mysql_data_seek() で、次のように定義されます:

int mysql_data_seek(int result_identifier,int row_number)

この関数を呼び出して、結果セット row_number 行の場合、次回 mysql_fetch_* 関数が呼び出されたときに、row_number 行を後方にスライドした後のレコードが読み取られます。

関連する学習の推奨事項: PHP プログラミングの入門から熟練度まで

以上がphp は mysql をどのように操作してクエリ結果を取得しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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