MySQL请求返回null控制器PHP

时间:2019-03-22 09:41:31

标签: php mysql

我已经在代码上创建了一个表格订单,我的想法是为每个用户生成一个唯一订单ID。

在我的控制器上,我有一个带有MYSQL请求的代码,以及一个返回结果的函数(在其他SQL请求中起作用)。

所以我对MySQL请求的想法是计算具有相同编号的订单数量,如果结果为= 1,则必须生成一个新的订单编号。在我的订单类上,我具有以下功能:

    public static function getCountOrderIfExist($bdd, $order_number) {
    $requete = "SELECT * FROM Order WHERE order_number='$order_number'";
    $commandes = getResultatRequete($bdd, $requete);
    return !empty($commandes) ? $commandes : null;
}

然后在控制器上调用它:

$count = Order::getCountOrderIfExist($bdd, $order_number);
                        while ($count >= 1) {
                            $order_number= $user_role."_".$user->getUtilisateurId().rand(1,99999)."_".$user->getEntreprise()->getId().rand(1,999999);
                        }

这是我的getResultatRequete的代码:

function getResultatsRequete(PDO $bdd, $requete) {
    $reponse_requete = $bdd->query($requete);
    if ($reponse_requete != false) {
        $resultat_requete = $reponse_requete->fetchAll();
        return str_replace("\\", "", $resultat_requete);
    } else {
        printErrorInfo($bdd, $requete, true);
        return array();
    }
}

当我在调试模式下运行代码时,SQL请求返回NULL,但我不明白为什么,因为当我在终端上运行Request时,它运行良好。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

从我们在注释中的对应关系来看,问题似乎出在return语句上:

return !empty($commandes) ? $commandes : null;

该语句返回所有找到的记录,如果找不到记录,则返回null。但是,似乎控制器希望该函数返回匹配记录的数量(如果没有找到,则返回0)。

为了返回一个供您使用的数字,您需要对返回的记录进行计数:

return count($commandes);

这应该为您提供所需的结果。