在准备好的语句中显示num_rows并获取关联


show num_rows and fetch assoc in prepared statment

我试了很多次这个查询。但是,它仍然是错误的。我很困惑。请帮忙:

<?php
$sql = $db->prepare("SELECT nm_bahan FROM bahan WHERE nm_bahan=? ");
        $sql->bind_param("s", $_POST['nm_bahan']);
        $sql->execute();
        $sql->store_result();
        $jml = $sql->num_rows;
        
        $result = $sql->get_result();
        $data = $result->fetch_assoc();
echo $jml . "<br>" . $data['nm_bahan'];
?>

数据库只返回一个结果集。所以你不能得到它两次。

<?php
$sql = $db->prepare("SELECT nm_bahan FROM bahan WHERE nm_bahan=? ");
$sql->bind_param("s", $_POST['nm_bahan']);
$sql->execute();
$result = $sql->get_result();
$data = $result->fetch_assoc();
// I have no idea why you need this useless number but meh
$jml = $result->num_rows;
echo $data['nm_bahan'];