0

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

我基本上有一个 MySQL 表,它有一个名为 file 的字段,现在用户提交表单,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>";
}

但无论我是否上传了文件,它都会回显“未上传文件”。

4

3 回答 3

3

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

将第一行更改为:

if ($filename == "upload/" ) {
于 2013-02-15T07:14:36.250 回答
3

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

if ($filename == "upload/" ) {
 echo "No file uploaded";
}else {
  echo "<div class='span2' style='padding-left:10px;'><a href='".$filename."'>Download Attachment</a></div>";
}
于 2013-02-15T07:14:50.023 回答
2

你在做作业。

if ($filename = "upload/" )

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

您需要使用比较操作

if ($filename == "upload/" )

由于 = 和 == 非常相似,这样的问题很容易出现。一些程序员遵循将不能改变的值(常量、文字、函数调用等)放在左边的约定,这样如果他们不小心输入 = 而不是 == 程序就会出错而不是表现出那种行为您正在观察,使查找此类错误变得容易得多。

if ('upload/' == $filename)

如果你不小心写了

if ('upload/' = $filename)

然后 PHP 将尝试为常量分配一个新值。这显然会失败,并且您的 PHP 脚本将终止并出现致命错误,准确说明错误发生的位置。然后找到并修复它变得非常容易。

于 2013-02-15T07:15:09.103 回答