从表单编写PHP更新代码
就像标题本身告诉我的那样,我想用更短的方式编写soms PHP更新mysql代码 下面是php代码的一个示例块:从表单编写PHP更新代码,php,mysql,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
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));
}
它在$\u POST global中循环,排除您不想添加的内容,例如submit按钮
这是未经测试的,但应该会给你一个如何处理这个问题的想法。你可以从缩写if/else语句(或其他任何名称)开始:
$firstName=(空($\u POST['firstName'])?“:$\u POST['firstName'];
噢,哇!我喜欢“for”和“foreach”的方式正在节省大量代码行…我仍然不知道为什么,但我似乎不能掌握它。我找不到学习使用它的方法。但是你在我的代码中使用它迈出了一大步!foreach循环非常方便,尝试制作一些数组,然后用foreach进行实验。当你看到你可以用它做什么时,你会喜欢它的。