我目前正在使用一个 PHP 框架,该框架基本上使用 PDO 的包装器,并且被一个问题难住了。我有一个页面,其中包含任意数量的帖子变量,可以是以下任意组合:
":fullname" => $_POST['fullName'],
":universityID" => $_POST['university'],
":gpa" => $_POST['gpa'],
":major" => $_POST['major'],
":gradYear" => $_POST['gradYear'],
":photo" => "",
":description" => $_POST['description'],
"howDidYouHear" => $_POST['howDidYouHear']
我有一个更新语句,应该是这样的:
$affectedRows = getDatabase()->execute('UPDATE user SET universityID = :universityID,
gpa = :gpa, etc, WHERE fullName=:fullName', array(':universityID' =>
$_POST['universityID'], ':gpa' => $_POST['gpa']));
现在的问题是,如果我执行这种更新语句,我将覆盖表中的旧数据,其中大部分仍然有效。我想要做的只是更新我有新信息的行,而不是触及其他行。有没有办法在查询中找出哪些应该和不应该改变?