Php 一行中面向对象的mysql num_行查询

Php 一行中面向对象的mysql num_行查询,php,mysql,mysqli,object-oriented-database,Php,Mysql,Mysqli,Object Oriented Database,本质上,我想做的是删除额外的$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()方法中,必须使用通常的多行代码。但是,您也可以依次使用以下命令将其缩短:

另外,请允许我注意,您没有使用准备好的语句,这使得mysqli完全无用

只需使用if($result){…}。如果没有结果,则返回一个空变量,如果在if()中使用,则返回值为false
function exists($id)
{
    return (bool)$this->db-getOne("SELECT id FROM users WHERE id = ?i", $id);
}