>백엔드 개발 >PHP 문제 >PHP는 쿼리 결과를 얻기 위해 mysql을 어떻게 작동합니까?

PHP는 쿼리 결과를 얻기 위해 mysql을 어떻게 작동합니까?

coldplay.xixi
coldplay.xixi원래의
2020-07-23 14:59:433281검색

PHP를 사용하여 mysql을 작동하여 쿼리 결과를 얻는 방법: 1. [mysql_fetch_array($rs,MYSQL_ASSOC)] 함수를 사용합니다. 2. [mysql_fetch_array($rs,MYSQL_BOTH);] 함수를 사용하여 배열을 얻습니다.

PHP는 쿼리 결과를 얻기 위해 mysql을 어떻게 작동합니까?

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)

rreee

3.mysql_fetch_array($rs,MYSQL_NUM) 배열 가져오기

[@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]#

다음은 보충입니다.

결과 세트를 가져오는 PHP의 여러 방법

[@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]#

종합적인 비교

이 섹션에서는 주로 쿼리 가져오기를 소개합니다. 결과 집합 4개 함수는 여기에서 포괄적으로 비교됩니다.

  • mysql_result(): 장점은 사용하기 쉽다는 것입니다. 단점은 한 번의 호출로 결과 데이터 세트에서 한 행의 레코드만 얻을 수 있다는 것입니다. 대규모 데이터베이스에는 비효율적입니다. mysql_result():优点在于使用方便;而缺点在于功能少,一次调用只能获取结果数据集中的一行记录,对较大型的数据库效率较低。

  • mysql_fetch_row():优点在于执行效率在4种方法中最高;不足在于只能用数字作为属性索引来获得属性值,在使用时非常容易出现混淆。

  • mysql_fetch_array():执行效率同样很高,同mysql_fetch_row()相差无几,并且可以用属性名方式直接获取得属性值,因此,在实际应用中最常用。

  • mysql_fetch_object():采用了面向对象的思想,在设计思路上更为先进,如果读者习惯于面向对象的思路来写程序,则会很自然的选择它。其次,该方法的优点还体现在,对于结构较为复杂的数据结果,在逻辑上显得更为清晰。

后3个函数的共同点在于,都是取得当前行的数据,然后自动滑向后一行。有时候,希望控制滑动的行数,这是常常搭配使用的一个函数是mysql_data_seek(),其定义为:

<?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>";  
 } 
?>

调用该函数可以在结果集中向后滑动row_number行,在下一次调用mysql_fetch_*函数时,读取的将是向后滑动row_number

mysql_fetch_row(): 장점은 네 가지 방법 중 실행 효율성이 가장 높다는 점입니다. 단점은 속성 값을 얻기 위한 속성 인덱스로 숫자만 사용할 수 있다는 점입니다. 그것을 사용할 때 혼란을 야기하기가 매우 쉽습니다.

mysql_fetch_array(): 실행 효율성도 mysql_fetch_row()와 거의 동일할 정도로 매우 높으며, 속성명을 이용하여 속성값을 직접 얻을 수 있다. 일반적으로 사용되는 실용적인 응용 프로그램에 가장 적합합니다.

🎜mysql_fetch_object(): 객체지향적 사고를 채택하고 디자인 아이디어가 더욱 발전된 독자라면 객체지향적 아이디어로 프로그램을 작성하는 것이 자연스러울 것입니다. 선택하세요. 둘째, 이 방법의 장점은 더 복잡한 구조를 가진 데이터 결과가 논리적으로 더 명확하다는 것입니다. 🎜🎜마지막 세 함수의 공통점은 모두 현재 행의 데이터를 얻은 후 자동으로 다음 행으로 미끄러진다는 것입니다. 가끔 슬라이드할 행 수를 제어하고 싶을 때가 있습니다. 자주 함께 사용되는 함수는 mysql_data_seek()이며 다음과 같이 정의됩니다. 🎜
int mysql_data_seek(int result_identifier,int row_number)
🎜결과 세트에서 뒤로 슬라이드하려면 이 함수를 호출하세요. row_number 행, 다음에 mysql_fetch_* 함수가 호출되면 row_number 행을 뒤로 밀어낸 후의 레코드를 읽습니다. 🎜🎜🎜관련 학습 권장 사항: 🎜초보부터 마스터까지 PHP 프로그래밍🎜🎜🎜

위 내용은 PHP는 쿼리 결과를 얻기 위해 mysql을 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.