I had a mysql query and I was converting it to mysqli(prepared statement) but I ran in to a problem which throws the below error,
Warning: mysqli_stmt::bind_result(): Number of bind variables doesn't match number of fields in prepared statement
Mysql code
$random_name_generated = vpb_generate_random_name().'.jpg'; //Generated name for uploaded files or images if (move_uploaded_file($_FILES['file_to_upload']['tmp_name'], $final_uploads_location)) { $check_empty_field = mysql_query("select * from `vpb_uploads` where `username` = '".mysql_real_escape_string(strip_tags($username))."' and `firstname` = '".mysql_real_escape_string("")."' and `lastname` = '".mysql_real_escape_string("")."'"); if(mysql_num_rows($check_empty_field) < 1) { mysql_query("insert into `vpb_uploads` values('', '".mysql_real_escape_string($username)."', '', '', '".mysql_real_escape_string($random_name_generated)."', '', '', '', '', '".mysql_real_escape_string(date("d-m-Y"))."')"); $identity = "image_one"; } else { $get_empty_field = mysql_fetch_array($check_empty_field); $image_one = strip_tags($get_empty_field["image_one"]); $image_two = strip_tags($get_empty_field["image_two"]); $image_three = strip_tags($get_empty_field["image_three"]); $image_four = strip_tags($get_empty_field["image_four"]); $image_five = strip_tags($get_empty_field["image_five"]); global $identity;
The below is what I tried even though it didn't work. I already knew it won't work but I wanted to try it myself before asking a question. And the error is coming from the $get_empty_field = $stmt->bind_result($stmt);
Can anyone help me figure out what went wrong?
if (move_uploaded_file($_FILES['file_to_upload']['tmp_name'], $final_uploads_location)) { $firstname = '""'; $lastname = '""'; $stmt = $mysqli->prepare("select * from `vpb_uploads` where `username` = ? and `firstname` = ? and `lastname` = ?"); $stmt->bind_param('sss', $username, $firstname, $lastname); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows < 1) { $date = 'date("d-m-Y")'; $image_2 = "''"; $image_3 = "''"; $image_4 = "''"; $image_5 = "''"; $stmt = $mysqli->prepare("insert into `vpb_uploads` (`username`, `firstname`, `lastname`, `image_one`, `image_two`, `image_three`, `image_four`, `image_five`, `date`) values(?,?,?,?,?,?,?,?,?)"); $stmt->bind_param('sssssssss', $username, $firstname, $lastname, $random_name_generated, $image_2, $image_3, $image_4, $image_5, $date); $stmt->execute(); $stmt->close(); $identity = "image_one"; } else { $get_empty_field = $stmt->bind_result($stmt); $image_one = strip_tags($get_empty_field["image_one"]); $image_two = strip_tags($get_empty_field["image_two"]); $image_three = strip_tags($get_empty_field["image_three"]); $image_four = strip_tags($get_empty_field["image_four"]); $image_five = strip_tags($get_empty_field["image_five"]); global $identity;