php条件不起作用


php condition not working

我试图根据查询结果为空或等于上传的条件在网站上隐藏URL,但我似乎无法使其工作。

我基本上有一个MySQL表,它有一个名为file的字段,现在用户提交表单时,文件字段是不需要的,但它会在数据库上保存"upload/"。例如,如果我提交两次表格,一次有文件附件,第二次没有附件,我的表格将如下所示:

fileID   |  filename
1        |  upload/file1.txt
2        |  upload/

现在,在我的页面上,我只想在上传了文件的情况下显示结果,但我似乎无法使其工作。以下是我尝试过的:

if ($filename = "upload/" ) {
   echo "No file uploaded";
} else {
  echo "<div class='span2' style='padding-left:10px;'><a href='".$filename."'>Download Attachment</a></div>";
}

但不管我是否上传了文件,它都会回复"没有上传文件"。

使用相等运算符==而不是=

if ($filename == "upload/" ) {
 echo "No file uploaded";
}else {
  echo "<div class='span2' style='padding-left:10px;'><a href='".$filename."'>Download Attachment</a></div>";
}

您使用的是赋值运算符而不是相等运算符。

将第一行更改为:

if ($filename == "upload/" ) {

您正在做一项作业。

if ($filename = "upload/" )

基本上翻译为"将$filename的值设置为'upload',然后检查它是否有值。当然,在那一点上它总是有值的,因此返回true。

您需要使用比较操作

if ($filename == "upload/" )

由于=和==如此相似,像这样的问题很容易出现。一些程序员遵循惯例,将无法更改的值(常量、文字、函数调用等)放在左边,这样,如果他们不小心键入=而不是==,程序就会出错,而不是表现出你观察到的那种行为,从而更容易发现此类错误。

if ('upload/' == $filename)

如果你不小心写了

if ('upload/' = $filename)

那么PHP将尝试为一个常量分配一个新值。这显然会失败,您的PHP脚本将以一个致命错误终止,该错误会准确地告诉您错误发生的位置。找到并修复它变得非常容易。