Бих предложил да обвиете целия bind_param и да го изпълните с условие if, тъй като изявлението няма да бъде подготвено, ако има дори малък проблем. В този случай предполагам, че може да се окаже, че типовете за всяка променлива/поле са грешни в някакъв момент - вероятно image
/ b
част.
Можете да повторите типа на всеки с помощта на gettype
което може да помогне за проследяването му:
echo gettype($first), gettype($email), gettype($phone),
gettype($school), gettype($dob), gettype($father),
gettype($feereceived), gettype($due), gettype($image);
$db = new mysqli("localhost", "root","","learndb");
if ($db->connect_error) {
die("Connection failed this is the error: " . $db->connect_error);
}
$stmt = $db->prepare("INSERT INTO studentrecords (`Name`, `email`, `Phone`, `school`,`dob`,`father`,`feereceived`,`due`,`image`) VALUES (?,?,?,?,?,?,?,?,?)");
if($stmt) {
$stmt->bind_param("ssisssiib",$first,$email,$phone,$school,$dob,$father,$feereceived,$due,$image);
$stmt->execute();
} else {
echo 'Failed to prepare the sql statement';
}