// Init SQL query
$statement = "UPDATE tableName SET ";
$params = array();
// Iterate $_POST variables
foreach ($_POST as $key=>$value) {
// Append a new SET key/value pair
$statement .= "$key = :$key, ";
// You're using prepared statements, right?
$params[$key] = $value;
}
// Cut off last comma and append WHERE clause
$statement = substr($statement,0,-2)." WHERE id = :id";
// Store id for prepared statement
$params['id'] = $id;
// Prepare the query
$pdo->prepare($statement);
// Execute with parameters
$result = $pdo->execute($params);
3条答案
按热度按时间z9gpfhce1#
很简单,提交表单后,请执行以下操作:
这是基本的逻辑,我希望这就是你所寻找的。
iqjalb3h2#
当你使用
$_POST
变量来构造SQL查询时,只要确保你没有包含任何没有在$_POST
中设置的列名或值。如果SQLUPDATE
语句没有一个列的值,并且没有形成预期的值,那么DB不会尝试更新这些列。最好的方法可能是使用foreach
循环:nwo49xxi3#
我认为最简单的方法是首先调用一个fetch查询,然后使用while循环填充输入字段为〈input type=“text”name=“name”value=现在它将包含以前的值,直到用户在输入字段中更改它,就像如果他保持不变,那么以前的值将自动保存