我有这个功能,可以从数据库中提取“ flightsize”并使用它来设置对象。
我需要包括一个故障保险,如果数据库中没有flightize,则使flightize = 6。
我读到我想为此使用IFNULL,但不幸的是我无法使其正常工作。
有人可以帮我吗?

另外,最好使用IFNULL或为此“飞行”创建一个新的表项,以供将来选择使用?

public function getFlightSize($gamedata){
    $stmt = $this->connection->prepare(
        "SELECT
            shipid, flightsize
        FROM
            tac_flightsize
        WHERE
            gameid = ?"
        );

    if ($stmt){
        $stmt->bind_param('i', $gamedata->id);
        $stmt->bind_result($shipid, $flightsize);
        $stmt->execute();

        while($stmt->fetch()){
            $flight = $gamedata->getShipById($shipid);
            $flight->flightSize = $flightsize;
            $flight->populate();
        }

        $stmt->close();
    }
}

最佳答案

SELECT
        shipid, IFNULL(flightsize,6) AS flightsize
    FROM
        tac_flightsize
    WHERE
        gameid = ?


应该可以工作,但是如果表中不存在gameid,那么您将根本不会获得任何记录,因此您必须处理php代码中的情况。

关于php - mysql准备的语句IFNULL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31521675/

10-12 16:18