php - 从表单编写简短的 PHP 更新代码

标签 php mysql

就像标题本身告诉我的,我想用更短的方式编写 soms PHP 更新 mysql 代码

这是 php 代码的示例 block :

if ($_SERVER['REQUEST_METHOD'] == 'POST'){

  $getid = $_SESSION['id']

  if (empty($_POST['name']) {
  $name = ' ',
  }

  if (empty($_POST['firstname']) {
  $firstname = ' ',
  }

  if (empty($_POST['address']) {
  $address = ' ',
  }

  $upregstmt = $dbh->prepare("UPDATE contacts SET c_firstname = ?, c_name = ?, c_address = ? WHERE c_id = ?");  
  $upregstmt->bindParam(1, $firstname);
  $upregstmt->bindParam(1, $name);
  $upregstmt->bindParam(1, $address);
  $upregstmt->bindParam(1, $getid);
  $upregstmt->execute();


}

我有一个更大的表单,其中并非所有内容都会被填写,并且必须保持为空,因此在这种情况下我必须使用一个空变量。

问题:没有解决这个问题的方法(您可以与查询一起发送的参数,例如它不会给我一个空变量错误?)并且其他代码不能写得更小吗?

最佳答案

您可以这样做缩短一点:

$exludeArray = array("submit");
foreach ($_POST as $key => $value) {
    if (!in_array($key, $excludeArray))
        $upregstmt->bindParam(1, (empty($value) ? " " : $value));
}

它循环遍历您的 $_POST 全局,排除您不想添加的内容,例如提交按钮。

它未经测试,但应该可以让您了解如何解决这个问题。

关于php - 从表单编写简短的 PHP 更新代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23651604/

相关文章:

php - mysql_affected_rows() 总是返回 0

php - 从数据库中检索时间时,javascript 计时器不倒计时

mysql - 按优先级/粘性排序的事件

mysql - 跳过 MySQL 结果中的第一条记录

php - 将日期格式从 d-m-Y 转换为 Y-m-d

mysql - 只显示来自 mysql 查询的最高结果?

php - 是否可以断开 http 客户端与 PHP 的连接?

php - ftp_nlist() : data_accept: SSL/TLS handshake failed

php - 如何获取 PHP 核心函数列表以便编写函数包装器

php - UTF-8贯穿始终