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

一致する行がないSelectの場合のMySQLiQueryの戻り値

    MySQLiドキュメント から :

    したがって、基本的に、クエリが行を返さない場合でも、クエリは成功します。返される行数を確認する必要があります。 ifを変更する 条件:

    If ($result->num_rows) {
    

    補足:

    1. 今こそ、PHP-MySQLを操作するための正しい最初のステップを実行する適切なタイミングです。クエリ関数を使用する代わりに、プリペアドステートメント を使用する必要があります 。
    2. 常に例外処理を使用します(try-catch )、クエリ実行中に他のエラーをキャッチします。

    プリペアドステートメントと例外処理を使用した同等のコードは次のとおりです。

    try {
    
        // Prepare the query
        $stmt = "SELECT * FROM bank 
                 WHERE name = ? 
                   AND day = ? 
                   AND time = ?";
    
        // Bind the parameters
        // assuming that your day and time are integer values
        $stmt->bind_param("sii", 'jack', '1', '2');
    
        // execute the query
        $stmt->execute();
    
        // Getting results:
        $result = $stmt->get_result();
    
        if ($result->num_rows === 0) {
            echo "0 results";
        } else {
            echo "success";
    
            // reading results
            while($row = $result->fetch_assoc()) {
                $name = $row['name'];
                $day = $row['day'];
                $time = $row['time'];
            }
        }
    
    } catch (Exception $e) {
    
         // your code to handle in case of exceptions here
         // generally you log error details, 
         //and send out specific error message alerts
    }
    


    1. PHPとMYSQLのデータベース接続とテーブルの作成は1回だけ

    2. PHPを介してMySQLデータベースの出力をXMLに取得

    3. MariaDB SESSION_USER()の説明

    4. JsonをSQLテーブルに変換する