无法在php中正确使用sql查询的结果

我想做的是获取满足特定要求的行数,并且根据满足的数量,脚本将执行不同的操作。


我的代码:


        $sql2 = "SELECT COUNT(email)FROM subscribers WHERE id= ?";

        $stmt2 = $conn->prepare($sql2);

        $stmt2->bind_param("s", $id);

        $stmt2->execute();

        $callbacks = $stmt2->get_result();

        while($rows = $callbacks->fetch_assoc()){

            $results = $rows;

        }

        $stmt2->close();


        if ($results <2001){

            $email = trim($_POST["email"]);

        }else{

            $email_err = "This user has reached the limmit to what their plan can allow .";

        }

我遇到的问题是我不确定如何实际使用行数。


在此配置中,它不关心结果的数量是多少,它只是发布它们。


如果我执行类似的操作id_err = $results; 来查看查询结果是什么,它会给我一个数组到字符串转换错误。


听起来这种操作需要硬件密集型操作,如果您认为应该直接查询行并使用 PHP 对其进行计数,请告诉我如何操作。


我还尝试使用$results = $rows['count']不同的名称(例如“总计”和“结果”)进行一些变体,但他们仍然发布。当我尝试查看查询结果时,id_err = $results;它会忽略它并无论如何发布。


为了避免对 $id_err 是什么产生任何混淆,如果脚本被使用,它会阻止脚本发布。


并澄清此 SQL 查询位于条件语句内。


先感谢您。


慕神8447489
浏览 87回答 1
1回答

浮云间

该count函数将所有记录作为一行与计数一起返回。因此,删除while并比较适当的索引。$sql2 = "SELECT COUNT(email) as the_count FROM subscribers WHERE id= ?";$stmt2 = $conn->prepare($sql2);$stmt2->bind_param("s", $id);$stmt2->execute();$callbacks = $stmt2->get_result();$rows = $callbacks->fetch_assoc();$stmt2->close();if ($rows['the_count'] < 2001){&nbsp; &nbsp; &nbsp;$email = trim($_POST["email"]);}else{&nbsp; &nbsp; &nbsp;$email_err = "This user has reached the limmit to what their plan can allow .";}
打开App,查看更多内容
随时随地看视频慕课网APP