Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQLi bereitet keine Erklärung vor

Alle mysqli-Funktionen/Methoden können fehlschlagen, in diesem Fall geben sie „false“ zurück. Dh Wenn Prepare() fehlschlägt, ist $stmt kein Objekt, für das Sie eine Methode aufrufen können, sondern ein bool(false). Sie müssen die Rückgabewerte überprüfen und eine Fehlerbehandlung hinzufügen, z. B.

$stmt = $mysqli->prepare('SELECT name FROM `rooms` WHERE r_id=?');
if ( !$stmt ) {
    printf('errno: %d, error: %s', $mysqli->errno, $mysqli->error);
    die;
}

$b = $stmt->bind_param('i', $roomID);
if ( !$b ) {
    printf('errno: %d, error: %s', $stmt->errno, $stmt->error);
}

$b = $stmt->execute();
if ( !$b ) {
  and so on and on

siehe http://docs.php.net/mysqli-stmt.errno et al.

in diesem Fall sind Sie wahrscheinlich auf das Problem gestoßen, dass Sie keine weitere Anweisung erstellen können, solange noch Ergebnisse/Ergebnissätze für die vorherige Anweisung anstehen.
siehe http://docs.php.net/mysqli-stmt.close :