当您使用 $_POST 变量来构造SQL查询时,请确保在 $_POST 中未设置't including any column names or values that aren' . 如果SQL UPDATE 语句没有形成为期望的语句,则DB将不会尝试更新这些列 . 最好的方法可能是使用 foreach 循环:
// 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);
0
提交表单后非常简单,请执行以下操作:
if(isset($_POST['name'])) {
// Do the update
}
else {
// Don't do anything because it means there is no $_POST['name']
}
2 回答
当您使用
$_POST
变量来构造SQL查询时,请确保在$_POST
中未设置't including any column names or values that aren' . 如果SQLUPDATE
语句没有形成为期望的语句,则DB将不会尝试更新这些列 . 最好的方法可能是使用foreach
循环:提交表单后非常简单,请执行以下操作:
这是基本的逻辑,我希望这是你正在寻找的 .