面向对象的mysqli num_rows查询在一行中

时间:2013-08-11 08:02:22

标签: 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...
}

1 个答案:

答案 0 :(得分:2)

首先,让我责备你的意图 “在一行中做某事”(暗示“使用一些语法技巧”)不是要走的路。

OOP可以缩短您的代码,但不会缩短您的要求。使用OOP缩短此代码意味着使用某种方法创建一个类来调用:

if ($user->exists($user)) {
    // Continue...
}else{
    // Does not exist, create...
}

这就是OOP的工作原理。

在exists()方法内部,您必须使用通常的多行代码。但是,您也可以使用database class依次缩短它:

function exists($id)
{
    return (bool)$this->db-getOne("SELECT id FROM users WHERE id = ?i", $id);
}

另外,请注意,您没有使用预备语句,这使得mysqli完全无用