抱歉,我是PHP的新手,所以我看起来像个菜鸟。
正如标题所说,我制作了这种更新用户数据的方法:
function update($userid, $name){
Try{
$stmt=$this->db->prepare("UPDATE users
SET
name=:name,
WHERE userid=:userid");
$stmt->execute(array(':name'=>$name));
} Catch(PDOException $e){
echo $e->getMessage();
}
}
该代码工作正常,但我想知道是否可能,“name”列只是更新,如果变量来自:
$user->update($userid, $name);
来自$ name,不为null或不为空。如果它为null或Empty,则不应该执行MYSQL UPDATE函数。
答案 0 :(得分:3)
试试这个。
function update($userid, $name) {
try {
if (!empty($name) and !empty($userid)) {
$stmt = $this->db->prepare("UPDATE users
SET
name=:name
WHERE userid=:userid");
$stmt->execute(array(':name' => $name, ':userid' => $userid));
}
}
Catch(PDOException $e) {
echo $e->getMessage();
}
}
SET name=:name,
)。UPDATE table SET col1 = "val1", col2 = "val2"
等等。由于您只更新了一列,因此不需要逗号empty
方法检查变量$name
是否已设置且不为false。见documentation。