ここでは文字列を扱っている可能性が高いため、値の変数を引用符で囲む必要があります。
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
補足: エラー報告はステージングでのみ行う必要があり、本番環境では行わないでください。