sql >> Database >  >> RDS >> Mysql

Gegevens niet opgeslagen met behulp van voorbereide verklaringen

Ik stel voor dat je de hele bind_param inpakt en uitvoert met een if-voorwaarde, omdat de instructie niet kan worden voorbereid als er zelfs maar een klein probleem is. In dit geval vermoed ik dat het kan zijn dat de typen voor elke variabele/veld op een bepaald moment verkeerd zijn - waarschijnlijk de image / b onderdeel.

Je kunt het type van elk herhalen met gettype wat kan helpen om het op te sporen:

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';
}



  1. Symfony 2:INNER JOIN op niet-gerelateerde tabel met doctrine-querybuilder

  2. Opgeslagen procedures met MySQL Workbench

  3. Op PostgreSQL gebaseerde applicatieprestaties:latentie en verborgen vertragingen

  4. MySQL-tijdstempel selecteer datumbereik