我试图根据查询结果为空白或等于上传的条件隐藏网站上的网址,但我似乎无法使其正常工作。
我基本上有一个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>";
}
但无论我是否上传了文件,它都会回复“没有上传文件”。
答案 0 :(得分:3)
您正在使用赋值运算符而不是相等运算符。
将第一行更改为:
if ($filename == "upload/" ) {
答案 1 :(得分:3)
使用等于运算符==
代替=
if ($filename == "upload/" ) {
echo "No file uploaded";
}else {
echo "<div class='span2' style='padding-left:10px;'><a href='".$filename."'>Download Attachment</a></div>";
}
答案 2 :(得分:2)
你正在做作业。
if ($filename = "upload/" )
基本上转换为“将$ filename的值设置为'upload',然后检查它是否有值。当然它总是会有一个值,因此返回true。
您需要使用比较操作
if ($filename == "upload/" )
由于=和==如此相似,这样的问题很容易出现。一些程序员遵循将左边不能改变的值(常量,文字,函数调用等)放在左边的惯例,这样如果他们不小心输入=而不是==,程序就会出错,而不是表现出那种行为你在观察,发现这样的错误要容易得多。
if ('upload/' == $filename)
如果你不小心写了
if ('upload/' = $filename)
然后PHP会尝试为常量赋值。这显然会失败,您的PHP脚本将以致命错误终止,告知错误发生的确切位置。找到并修复它然后变得非常容易。