PHP中的一个while循环解决方案
程序员文章站
2024-01-11 12:02:16
...
PHP中的一个while循环
这样处理2条数据,都会超过30秒超时,是语句错了吗?目的是批量处理数据,用if处理一条一条的数据,就没有问题。
------解决方案--------------------
while($rows=mysql_fetch_array(mysql_query("select pl_title from pagelinks limit 1,2")))
想想看这个表达式的值会否变成false,每次循环都会执行mysql_query("select pl_title from pagelinks limit 1,2"),那么你获得的结果就永远只是第一条,陷入死循环
------解决方案--------------------
你把mysql_query()分离出来应该不会超时。你那样写陷入死循环了。
------解决方案--------------------
每次循环都会执行while($rows=mysql_fetch_array(mysql_query("select pl_title from pagelinks limit 1,2")))
觉得就是分开写吧
$sql="select pl_title from pagelinks limit 1,2";
$rs=mysql_query($sql);
.....
而且while{}应该从头到尾吧,while(..){
$string=$rows['pl_title'];
$string1=urlencode($string);
echo $string;
$url = "http://localhost/index.php/"."$string1";
$contents = file_get_contents($url);
if((preg_match_all('/()/iUs', $contents, $match))){
$contents = $match[1][0];
}
else{
(preg_match_all('/()/iUs',$contents,$match));
$contents = $match[1][0];
//
}
不然在while里面出不来了,就是死循环了
------解决方案--------------------
还是得把mysql_query()拿出来
------解决方案--------------------
$query = mysql_query("select pl_title from pagelinks limit 1,3");
while ($rows=mysql_fetch_array($query)){
$string[]=$rows['pl_title'];
$string1=urlencode($string);
}
print_r($string);
------解决方案--------------------
------解决方案--------------------
循环里面执行sql语句可是个效率很低的方法,建议换个别的方法!
------解决方案--------------------
- PHP code
while($rows=mysql_fetch_array(mysql_query("select pl_title from pagelinks limit 1,2"))){ $string=$rows['pl_title']; $string1=urlencode($string); } echo $string; $url = "http://localhost/index.php/"."$string1"; $contents = file_get_contents($url); if((preg_match_all('/()/iUs', $contents, $match))){ $contents = $match[1][0]; } else{ (preg_match_all('/( )/iUs',$contents,$match)); $contents = $match[1][0]; //echo $match[1][0]; }
这样处理2条数据,都会超过30秒超时,是语句错了吗?目的是批量处理数据,用if处理一条一条的数据,就没有问题。
------解决方案--------------------
while($rows=mysql_fetch_array(mysql_query("select pl_title from pagelinks limit 1,2")))
想想看这个表达式的值会否变成false,每次循环都会执行mysql_query("select pl_title from pagelinks limit 1,2"),那么你获得的结果就永远只是第一条,陷入死循环
------解决方案--------------------
你把mysql_query()分离出来应该不会超时。你那样写陷入死循环了。
------解决方案--------------------
每次循环都会执行while($rows=mysql_fetch_array(mysql_query("select pl_title from pagelinks limit 1,2")))
觉得就是分开写吧
$sql="select pl_title from pagelinks limit 1,2";
$rs=mysql_query($sql);
.....
而且while{}应该从头到尾吧,while(..){
$string=$rows['pl_title'];
$string1=urlencode($string);
echo $string;
$url = "http://localhost/index.php/"."$string1";
$contents = file_get_contents($url);
if((preg_match_all('/(
$contents = $match[1][0];
}
else{
(preg_match_all('/(
$contents = $match[1][0];
//
}
不然在while里面出不来了,就是死循环了
------解决方案--------------------
还是得把mysql_query()拿出来
------解决方案--------------------
$query = mysql_query("select pl_title from pagelinks limit 1,3");
while ($rows=mysql_fetch_array($query)){
$string[]=$rows['pl_title'];
$string1=urlencode($string);
}
print_r($string);
------解决方案--------------------
------解决方案--------------------
循环里面执行sql语句可是个效率很低的方法,建议换个别的方法!
------解决方案--------------------
- PHP code
)/iUs', $contents, $match))){ $contents = $match[1][0]; } else{ preg_match_all('/()/iUs',$contents,$match); $contents = $match[1][0]; } // 连接的代码被删除了,你只需要改变连接到的数据库在while上一行 mysql_query("set names 'utf8'"); // 下面两句是什么意思? // $sql=""; // mysql_query($sql); $SQL=" INSERT INTO pagecontents (old_title,old_text) VALUES('{$string}','{$contents}')"; // 查询,失败返回错误消息 mysql_query($SQL) or die(mysql_error()); } // while循环结束 ?> 相关文章
相关视频
推荐阅读
-
一个可以删除字符串中HTML标记的PHP函数_PHP教程
-
问:一个天才的有关问题可以用php得到msn中好友的信息吗
-
在php中判断一个请求是ajax请求还是普通请求的方法_PHP
-
php怎样在Mongodb中查询一个每年都重复的日程呢?
-
ThinkPHP模板中判断volist循环的最后一条记录的验证方法_PHP
-
关于PHP手册中,不推荐复杂数组的引用举的一个例子,不解,该怎么处理
-
javascript-怎样在一个新窗口里打开本php页面中的一个函数写成的html页面
-
使用PHP导出Redis数据到另一个Redis中的代码
-
请问php中的exec函数的第一个参数一定要用绝对路径吗?
-
php 页面怎么接收表单中 循环出的数据