Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQLi nie może przygotować oświadczenia

Wszystkie funkcje/metody mysqli mogą zawieść i zwrócą wartość false. Tj. jeśli przygotowanie() się nie powiedzie, $stmt nie jest obiektem, na którym można wywołać metodę, ale bool(false). Musisz sprawdzić zwracane wartości i dodać obsługę błędów, np.

$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

zobacz http://docs.php.net/mysqli-stmt.errno i in.

w tym przypadku prawdopodobnie natknąłeś się na problem polegający na tym, że nie możesz utworzyć innej instrukcji, gdy nadal istnieją oczekujące zestawy wyników/wyników dla poprzedniej instrukcji.
zobacz http://docs.php.net/mysqli-stmt.close :




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najszybszy sposób na wstawienie wartości z datagridview do bazy mysql?

  2. Przetwarzaj JSON w MySQL

  3. Jak połączyć dwa wiersze i obliczyć różnicę czasu między dwoma wartościami znaczników czasu w MySQL?

  4. Jak zapobiec duplikowaniu rekordów z mojej tabeli Wstaw ignorowanie nie działa tutaj

  5. Jakiś sposób na wybór bez powodowania blokowania w MySQL?