sql >> データベース >  >> RDS >> Mysql

MySQLiがステートメントの準備に失敗する

    すべてのmysqli関数/メソッドが失敗する可能性があり、その場合、falseが返されます。つまりprepare()が失敗した場合、$ stmtはメソッドを呼び出すことができるオブジェクトではなく、bool(false)です。戻り値を確認し、エラー処理を追加する必要があります。例:

    $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
    

    http://docs.php.net/mysqli-stmt.errno を参照してください。 et al

    この場合、前のステートメントに対して保留中の結果/結果セットがまだある間は、他のステートメントを作成できないという問題に遭遇した可能性があります。
    http://docs.php.net/mysqli-stmt.close




    1. プロアクティブなSQLServerヘルスチェック、パート1:ディスク容量

    2. SQLclフォーマットオプション(Oracle)

    3. MySQL:行の値の一意のペアをカウントします

    4. MySQLで接続の照合を表示する方法