本质上,我想要做的是删除额外的 $result 行并将其全部包含在一个 IF 语句中。这在 PHP 中使用面向对象的查询是否可行?
$result = $mysqli->query("SELECT id FROM users WHERE id ='".$user."'");
if ($result->num_rows == 1) {
// Continue...
}else{
// Does not exist, create...
}
本质上,我想要做的是删除额外的 $result 行并将其全部包含在一个 IF 语句中。这在 PHP 中使用面向对象的查询是否可行?
$result = $mysqli->query("SELECT id FROM users WHERE id ='".$user."'");
if ($result->num_rows == 1) {
// Continue...
}else{
// Does not exist, create...
}
首先,让我责怪你的意图。
“在一行中做某事”(暗示“使用一些语法技巧”)不是要走的路。
OOP 可以缩短您的代码,但不是您要求的方式。使用 OOP 来缩短此代码意味着创建一个具有某些方法的类来调用:
if ($user->exists($user)) {
// Continue...
}else{
// Does not exist, create...
}
这就是 OOP 的工作原理。
在 exists() 方法内部时,您必须使用通常的多行代码。但是,您也可以缩短它,依次使用数据库类:
function exists($id)
{
return (bool)$this->db-getOne("SELECT id FROM users WHERE id = ?i", $id);
}
另外,请注意,您没有使用准备好的语句,这使 mysqli 完全无用。