| 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>";
}
?>优化代码,万恶之首……各位淡定,淡定!
本文通过一个简单的PHP查询示例,展示了如何避免代码中的死循环问题,并给出了正确的代码实现方式,强调了查询操作中优化的重要性。
5712

被折叠的 条评论
为什么被折叠?



