微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP MySQL Update查询

我有一个有更新查询的网站.例.

Table name -> myTable
Table Content -> id(AI)
                 name  --> myName
                 age   --> 13
                 image --> (no values)
                 birthdate  --> (no values)

我只把值放在名字和年龄上.在图像和生日,我没有放任何东西.
如果我编辑并更新它并且我没有在名称和年龄中添加任何内容,我只将值放在图像和生日中.输出是这样的. (我想要的这个输出)

Table name -> myTable
Table Content -> id(AI)
                 name  --> myName
                 age   --> 13
                 image --> myImage.jpg
                 birthdate  --> Feb. 31, 2010

这是我的代码

<?PHP
  //MysqL connect...
  //MysqL select database...
$sql = "UPDATE myTable SET name = '".$name."', age = '".$age."', image = '".$image."', birthdate"'$birthdate.."' WHERE id = $id";
MysqL_query($sql);
?>

我用过这段代码,但输出是:

Table name -> myTable
Table Content -> id(AI)
                 name  --> (no values)
                 age   --> (no values)
                 image --> myImage.jpg
                 birthdate  --> Feb. 31, 2010

如果您不理解我的问题,请随时询问
谢谢

解决方法:

如果您没有在UPDATE语句中包含新值,UPDATE会保留列.

因此,您可能需要使用一些条件代码来构建$sql变量,该条件代码检查用户输入的内容,然后仅在用户为其提供值时才包含列.

<?PHP

$columns = array("name", "age", "image", "birthdate");
$set = array();
foreach ($columns as $col) {
    if (isset($_GET[$col])) {
      $set[] = "$col = '" . MysqL_real_escape_string($_GET[$col]) . "'";
    }
}
$sql = "UPDATE myTable "
if ($set) {
    $sql .= " SET " . implode(",", $set);
}
$sql .= " WHERE id = " . (int) $id;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐