如何在此循环中跳过空结果或错误?

时间:2011-01-04 19:37:58

标签: php mysql sql

我有一个将数据存储到mysql中的循环...

/connect to your database 
//read your text file into an array, one entry per line

$lines = file('name.txt'); 

//loop through each website URL you read from the file 
foreach ($lines as $name) { 

//do some code
//Insert data to MySQL
 mysql_query("INSERT INTO table (data1,data2) VALUES ('$data1','$data2')");

} 

我的问题是当代码返回空时...然后它会给出错误并停止...所以我怎么能跳过这个并继续下一个名字所以循环不会停止直到它完成?

3 个答案:

答案 0 :(得分:4)

foreach($lines as $line){
    if(empty(trim($line)){ continue; }
    // do your insert, etc.
}

如果你要做的就是检查一个空行,这样就可以了。

祝你好运!

答案 1 :(得分:3)

您可以尝试打开文件:

file('name.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
根据php.net上的文件文档,

可能有用。

答案 2 :(得分:0)

清除-检查: if(trim($var) == '')

如果您想使用if(empty(trim($var))),请阅读空白的手册条目:

  

empty()仅将变量检查为   其他任何东西都会导致解析   错误。换句话说,以下   不起作用:空(修剪($ name))。

跳过当前循环迭代的其余部分: 如果您可以查看此内容,则可以使用continue。这会跳过实际的循环并继续下一个循环。

读取文件:正如Phoenix所提到的,以下代码为您提供了一个代表该文件的数组:

// Using the optional flags parameter since PHP 5
$trimmed = file('somefile.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

FILE_IGNORE_NEW_LINES删除\ n,但允许数组中的一些空元素。 FILE_SKIP_EMPTY_LINES和FILE_IGNORE_NEW_LINES一起删除空行。 空意味着\ n就在这一行! 如果你有空格字符,它就不是空的!