sql >> Database teknologi >  >> RDS >> Mysql

MySQLi undlader at udarbejde en erklæring

Alle mysqli-funktioner/-metoder kan fejle, i hvilket tilfælde de vil returnere falsk. dvs. hvis prepare() mislykkes, er $stmt ikke et objekt, du kan kalde en metode på, men en bool(false). Du skal tjekke returværdierne og tilføje noget fejlhåndtering, f.eks.

$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

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

i dette tilfælde stødte du sandsynligvis på problemet med, at du ikke kan oprette en anden erklæring, mens der stadig er resultater/resultatsæt afventende for den forrige erklæring.
se http://docs.php.net/mysqli-stmt.close :




  1. Forskelle i uger mellem PHP og MySQL

  2. Lige meget hvad, kan jeg ikke batch MySQL INSERT-sætninger i Hibernate

  3. Eksport af en MySQL-tabel til en CSV-fil

  4. Opdater SQL med fortløbende nummerering