我正在尝试将数据提交到数据库。我有一个更新表单,上面有几个字段,用于将数据从数据库中提取到字段中。提交它会更新数据库中的数据。这两个字段我关注的是我在表单中的两个图像上传器。当我在页面上只有一个图像上传器时,我已经成功地做到了这一点,但是当我添加第二个时,我无法绕过条件语法。下面是我用于只有一个图像上传器的表单的代码。它会查看提交的元素是否为空。如果是这样,它将运行更新语句并省略图像变量。如果image变量不为空,则运行update语句,并将该字段添加到语句中。
if($imgProfileFull == ""){
$query = "update students set `nameFirst` = '$nameFirst', `nameLast` = '$nameLast', `profile` = '$profile', `priority` = '$priority', `active` = '$active', `_modifiedDate` = '$_modifiedDate' where `id` = '$id'";
}else{
if((($_FILES["image"]["type"] == "image/jpeg")
|| ($_FILES["image"]["type"] == "image/pjpeg"))
&& ($_FILES["image"]["size"] < 500000))
{
if($_FILES["image"]["error"] > 0){
header("location:students.php?file=error");
}else{
move_uploaded_file($_FILES["image"]["tmp_name"],
"../images/students/full/" . $imgProfileFull);
}
}else{
header("location:students.php?file=error");
}
$query = "update students set `imgProfileFull` = '$imgProfileFull', `nameFirst` = '$nameFirst', `nameLast` = '$nameLast', `profile` = '$profile', `priority` = '$priority', `active` = '$active', `_modifiedDate` = '$_modifiedDate' where `id` = '$id'";
}
如何编写更新语句以包含其他图像字段。变量为$imgProfileThumb
。基本上我想更新数据库中的两个图像列,当且仅当它们不为空时。这是因为构建表单的方式,除非图像实际上传,否则图像字段在技术上总是空的。有什么想法吗?谢谢!
答案 0 :(得分:4)
您可以使用if语句动态创建查询。
$query = "UPDATE students SET ";
if ($imgProfileFull !== ""){
$query .= "`imgProfileFull` = '$imgProfileFull', ";
}
if ($imgProfileThumb !== ""){
$query .= "`imgProfileThumb` = '$imgProfileThumb', ";
}
$query .= "`nameFirst` = '$nameFirst',
`nameLast` = '$nameLast',
`profile` = '$profile',
`priority` = '$priority',
`active` = '$active',
`_modifiedDate` = '$_modifiedDate'
WHERE `id` = '$id'";
如果您还没有使用mysql_real_escape_string
,还可以使用{{3}}。