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

$ mysqli-> stmt_init()を呼び出させないプリペアドステートメント

    public function site_db()
    {
        // Connect to MySQL 
        $mysqli = mysqli_connect(SITE_HOST, SITE_ID, SITE_PW, SITE_DB); 
    
        // Check for Errors 
        if(mysqli_connect_errno()) 
        { 
            //echo mysqli_connect_error(); //shouldnt show client specific error information. 
            die('Error connecting to mysql database please report.'); 
        }
    
         return $mysqli;
    }
    
    
    public function exists (Mysqli $mysqli, $what, $who)
    {
    
        $query = "SELECT * FROM users WHERE ? = ?";
    
        // Get instance of statement 
        $stmt = $mysqli->stmt_init();
    
        // Prepare query 
        if($stmt->prepare($query)) 
        { 
            // Bind Parameters 
            $stmt->bind_param("ss", $what, $who); 
    
            // Execute statement 
            $stmt->execute(); 
    
            // Bind result variables 
            $stmt->bind_result($result); 
    
            // Fetch Value 
            $stmt->fetch(); 
    
            // catch num_rows result as variable
            $username_result = $result->num_rows;
    
            // Close Statement 
            $stmt->close();
        }
    
        if ($username_result != 0)
        {
            return true;
            echo 'true';
        }
        else
        {
            return false;
            echo 'false';
        }
    }
    

    使用方法:

    site_db()メソッドを持つファーストクラスをインスタンス化します

    $db = new Class();
    

    次に、exist()メソッドを持つ2番目のクラスをインスタンス化します

    $query = new Class();
    

    次に、単に

    $query->exist($db->site_db(), $what, $who );
    


    1. 情報システム、データおよび情報

    2. SQLデータベースのテーブルの新しいレコードを監視します

    3. 動的タブは同じレコードを表示しています

    4. mysqlテーブルのユーザーの郵便番号に一致する*を選択しますか?