シンプルなPHPログイン機能があります。この関数内で、テーブルからユーザー名を選択し、返される行数をカウントするMySQLクエリを作成して、ユーザーが存在するかどうかを確認しています。テーブルにユーザー名が含まれていることがわかっているのに、クエリがnullを返すのに問題があります。
これが私のコードです。
function login($user_name, $password) {
$db1 = new DB_CONNECT();
$db1->connect();
$query = "SELECT user_name FROM users WHERE user_name = '$user_name'";
$result = $db1->makeAQuery($query);
if (mysql_num_rows($result) == 1) {
//check the password
}
else {
//no user exist
}
}
入ってくるユーザー名とパスワードは問題ないことを知っているので、関数に送信する前に空白を削除します。私のPHPコードの残りの部分で機能するため、データベース接続が機能していることを知っています。私が得ている唯一のエラーは、mysql_num_rowsが「パラメータ1がリソースであり、nullが与えられていることを期待している」というエラーです。
データベースクラス
class DB_CONNECT {
function connect() {
// import database connection variables
require_once __DIR__ . '/db_config.php';
$con = mysql_connect(DB_SERVER, DB_USER, DB_PASSWORD) or die(mysql_error());
// Selecing database
mysql_select_db(DB_DATABASE, $con) or die(mysql_error());
}
function makeAQuery($query) {
$result = mysql_query($query) or die(mysql_error());
}
function close() {
// closing db connection
mysql_close();
}
}