从表单中编写PHP更新代码

时间:2014-05-14 10:08:01

标签: php mysql

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

以下是php代码的示例块:

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();


}

我有一个更大的形式,并不是所有东西都会被填写,并且必须保持为空,所以在那种情况下我必须处于一个空变量。

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

1 个答案:

答案 0 :(得分:1)

你可以稍微缩短它:

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

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

这是未经测试的,但应该让你知道如何处理这个问题。