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

PHPエラー:非オブジェクトのメンバー関数rowCount()を呼び出す

    ここでは文字列を扱っている可能性が高いため、値の変数を引用符で囲む必要があります。

    WHERE ens_cin='$login' AND ens_pass='$password'";
    

    さらに、PDOを単独で使用するだけでは、SQLインジェクションに対して安全であるとは限りません。

    洞察:

    mysqli_ではなく、実際にPDOを介して接続していることを確認してください 。この種の質問をよく目にします。

    その場合、それらの異なるMySQLAPIは互いに混ざり合いません。

    今これ:

    $password=$_GET["password"];
    

    GETを介してパスワードを渡すことも安全ではありません。誰が「聞いている」のかわかりません。 POSTを使用する必要があります。また、パスワードの保存にプレーンテキストではなくハッシュを使用していることを願っています。

    補足:これがHTMLフォームからのものである場合は、実際にGETを使用しており、POSTと混同していないことを確認してください。

    エラーをチェックしていない可能性があります。

    $idconnex->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);を追加します 接続が開かれた直後。

    エラーレポートを追加します エラーを見つけるのに役立つファイルの先頭に移動します。

    <?php 
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    
    // rest of your code
    

    補足: エラー報告はステージングでのみ行う必要があり、本番環境では行わないでください。



    1. JavaScript/Node.jsでのSQLインジェクションの防止

    2. パーティションがSQLServer(T-SQL)で圧縮されているかどうかを確認する

    3. mysql.sockがありません。 OperationalErrorを生成します:(2002、ソケット'/tmp/mysql.sock'(2)を介してローカルMySQLサーバーに接続できません)

    4. 動的テーブル名を持つテーブルへのUPSERT