我有这个功能,可以从数据库中提取“ 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/