就像标题本身告诉我想用更短的方式编写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();
}
我有一个更大的形式,并不是所有东西都会被填写,并且必须保持为空,所以在那种情况下我必须处于一个空变量。
问题:这是不是可以解决这个问题(你可以用你的查询发送一个参数,例如它不会给我一个空变量错误?)并且其他代码不能写得更小?
答案 0 :(得分:1)
你可以稍微缩短它:
$exludeArray = array("submit");
foreach ($_POST as $key => $value) {
if (!in_array($key, $excludeArray))
$upregstmt->bindParam(1, (empty($value) ? " " : $value));
}
它循环遍历您的$ _POST全局,排除您不想添加的内容,例如提交按钮。
这是未经测试的,但应该让你知道如何处理这个问题。