我试图根据查询结果为空或等于上传的条件在网站上隐藏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脚本将以一个致命错误终止,该错误会准确地告诉您错误发生的位置。找到并修复它变得非常容易。