Figuring out prepared statements
I'm trying to implement prepared statement in this code:
$result=mysqli_query($connect,"SELECT subcategories.subcat_name, subsubcategories.subsubcat_name, subcategories.subcat_ID FROM subcategories INNER JOIN subsubcategories ON subcategories.subcat_ID=subsubcategories.subcat_ID WHERE subcategories.cat_ID = $cat_ID OR subcategories.extra_cat_ID = $cat_ID ORDER BY subcategories.subcat_name, subsubcategories.subsubcat_name ASC");
$lastcat = 0;
while ($row = mysqli_fetch_array($result)){
if($lastcat != $row['subcat_ID']){
$lastcat = $row['subcat_ID'];
echo "<br>";
echo $row['subcat_name'];
echo "<br>";
echo "<br>";
}
echo $row['subsubcat_name'];
echo "<br>";
}
This is how I did it so far:
$stmt = mysqli_prepare($connect, "SELECT subcategories.subcat_name, subsubcategories.subsubcat_name, subcategories.subcat_ID FROM subcategories INNER JOIN subsubcategories ON subcategories.subcat_ID=subsubcategories.subcat_ID WHERE subcategories.cat_ID = ? OR subcategories.extra_cat_ID = ? ORDER BY subcategories.subcat_name, subsubcategories.subsubcat_name ASC");
mysqli_stmt_bind_param($stmt, "ii", $cat_ID, $cat_ID);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $cat_ID, $cat_ID);
$lastcat = 0;
while ($row = mysqli_stmt_fetch($stmt)){
if($lastcat != $row['subcat_ID']){
$lastcat = $row['subcat_ID'];
echo "<br>";
echo $row['subcat_name'];
echo "<br>";
echo "<br>";
}
echo $row['subsubcat_name'];
echo "<br>";
}
But I get this error:
Warning: mysqli_stmt_bind_result(): Number of bind variables doesn't match number of fields in prepared statement in "mysqli_stmt_bind_result($stmt, $cat_ID, $cat_ID);"
Any idea what I'm doing wrong?