PHP If()..否则if()然后插入不工作

时间:2015-10-13 03:15:16

标签: php mysql

检查上传的CSV文件是否在其文件名中包含这些字符后,我尝试将CS​​V文件中的值插入到我的数据库中。因此,如果文件名在其文件名中包含 m1 ,我将在我的数据库表中插入/更新这些字段,对于 m2 m3 的文件也是如此,以及 m4 的文件名。这是代码:

echo $query;

问题:我可以成功上传任何文件。问题是,如果文件名上有 m1 m4 ,我无法在数据库表中插入值(来自csv)。虽然 m2 m3 的文件成功地将值(来自csv)插入到数据库表中。当我<script>$(document).ready(function(){$("#popimg").trigger('click')});</script> 时,结果是正确的值。

1 个答案:

答案 0 :(得分:0)

这里的问题是strpos()在$ file_m1(如果找到)中返回$ filename的起始位置索引,否则返回false。因此在这段代码中,strpos()有时会返回0(在if语句中引用时会被强制为false)。这就是代码无法正常工作的原因。

正确的解决方案是将strpos()返回的值显式比较为false,如下所示:

替换所有:

strpos($filename , $file_m1)

和其他表达式如下:

strpos($filename , $file_m1) !== false

请注意,我们使用的是!==运算符,而不仅仅是!=运算符。如果我们使用!=,我们将回到在布尔表达式中引用时0被强制为false的问题,因此0!= false将评估为false。