PHP/mysql条件更新查询

标签 php mysql conditional-statements

我正在尝试将数据提交到数据库。我有一个更新表单,上面有几个字段,可以将数据从数据库中提取到字段中。提交它会更新数据库中的数据。这两个字段与我在表单中的两个图像 uploader 有关。当我在页面上只有一个图片 uploader 时,我已经成功地做到了这一点,但是当我添加第二个时,我无法理解条件语法。下面是我用于只有一个图片 uploader 的表单的代码。它查看提交的元素是否为空。如果是这样,它会运行更新语句并忽略图像变量。如果图像变量不为空,它会运行一条更新语句,并将该字段添加到语句中。

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。基本上,当且仅当它们不为空时,我想更新数据库中的两个图像列。这是因为表单的构建方式,图像字段在技术上始终为空,除非图像实际上传。有什么想法吗?谢谢!!

最佳答案

您可以使用 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用于您的字符串数据(如果您还没有这样做的话)。

关于PHP/mysql条件更新查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256119/

相关文章:

php - 当我返回页面时,下拉菜单不会保持选中状态

php - 数据模式对话框不显示

r - 在 RStudio 中按条件分组

formatting - 在 Google 电子表格中,如何忽略条件格式中的空单元格?

javascript - 嵌套在多个 DIV 和 PHP 代码中的 jQuery 选择器

php - 如何停止使用 chmod 或 .htaccess 编辑父目录的 PHP 文件?

php - Laravel WKHTMLTOPDF 不工作

mysql - 使用左连接时使用 order by 和 limit 过滤查询

Javascript:仅当找到标签时才剥离标签