Am trying to convert mysqli to prepare statement. Have being making alot of progress with most of them,but is unusual. I hope some can help with it.
here is my mysqli code
$UpdateQuery = "UPDATE user SET avatar ='$NewImageName' WHERE user_name = '$temp'"; $InsertQuery = "INSERT INTO user (avatar) VALUES ('$NewImageName')"; $result = mysqli_query($con, "SELECT * FROM user WHERE user_name = '$temp'"); if( mysqli_num_rows($result) > 0) { if(!empty($_FILES['ImageFile']['name'])){ mysqli_query($con, $UpdateQuery)or die(mysqli_error($con)); header("location:edit-profile.php?user_name=$temp"); } } else { mysqli_query($con, $InsertQuery)or die(mysqli_error($con)); header("location:edit-profile.php?user_name=$temp"); } These is my attempt to try and fix it with prepared statement
if(!($stmtUpdate = $con->prepare("UPDATE user SET avatar = ? WHERE user_name = ?"))) { echo "Prepare failed: (" . $con->errno . ")" . $con->error; } if(!($stmtInsert = $con->prepare("INSERT INTO user ( avatar ) VALUES ( ? )"))) { echo "Prepare failed: (" . $con->errno . ")" . $con->error; } if(!($stmtSelect = $con->prepare("SELECT * FROM user WHERE user_name = ? "))) { echo "Prepare failed: (" . $con->errno . ")" . $con->error; } if(!$stmt->bind_param('sss', $temp, $NewImageName, $temp)) { echo "Binding paramaters failed:(" . $stmt->errno . ")" . $stmt->error; } if(!$stmt->execute()){ echo "Execute failed: (" . $stmt->errno .")" . $stmt->error; } $stmt->store_result(); if($stmt->num_rows == 0) { if(!empty($_FILES['ImageFile']['name'])){ $con->prepare($stmtUpdate)or die(mysqli_error($con)); header("location:edit-profile.php?user_name=$temp"); exit; } } else { $stmt->bind_result($avatar, $avatar, $temp); $stmt->fetch(); header("location:edit-profile.php?user_name=$temp"); } $stmt->close(); I Although i run it once and i get error, i know am most be missing some thing.
Fatal error: Call to a member function bind_param() on a non-object in ****/edit-profile.php on line 67Update, Select and Insert