>  기사  >  백엔드 개발  >  PHP 解决一次因压缩代码引发的死循环_PHP教程

PHP 解决一次因压缩代码引发的死循环_PHP教程

WBOY
WBOY원래의
2016-07-13 17:18:481041검색

test.table1表
id str1 str2
1 saa bbb
2 saa bbc
3 sss 123

要求:无重复列出“str1”段的内容。


本来是很简单的也就几行搞定,但我觉得代码还可以压缩一下,这样看起来比较浓缩,于是杯具就发生了,错误代码如下:

<?php
mysql_select_db("test", mysql_connect("localhost","******","******"));

while($row = mysql_fetch_array(mysql_query("SELECT DISTINCT str1 FROM table1")))
{
	echo $row['str1'];
	echo "<br>";
}
?>

第一眼看出其中的问题了么?这货居然引发了死循环。。。T_T

于是我又一步一步还原,死循环又不见了。显然不是提交语句的问题,应该是语法结构出问题了。

果然,问题出在while里。每次检测成立条件的时候都会执行一次mysql_query。然后就杯具了。

只要保证mysql_query仅执行一次就好,正确代码如下:

<?php
mysql_select_db("test", mysql_connect("localhost","******","******"));

$result = mysql_query("SELECT DISTINCT str1 FROM table1");
while($row = mysql_fetch_array($result))
{
	echo $row['str1'];
	echo "<br>";
}
?>

优化代码,万恶之首……各位淡定,淡定!

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/621611.htmlTechArticletest.table1表 id str1 str2 1 saa bbb 2 saa bbc 3 sss 123 要求:无重复列出“str1”段的内容。 本来是很简单的也就几行搞定,但我觉得代码还可以压缩...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.