PHPで受け取ったIDとパスワードで、select * from users_info where mail='petrov@t-answer.jp' AND password=''というSQL文があったとします。ANDを使っているので、クエリーのエラーがでると思ってましたが、エラーが出ませんでした。条件式が成り立っていないはずなのに、エラーがでないのはなぜ何でしょうか??また、どうしたらエラーを出してくれるのか気になります。わかる方ご教授お願いします。
ちなみに実行結果はempty set(何もでない)でした。
[追記]
PHP
1<!DOCTYPE html> 2<html> 3<head> 4 <title>ログイン画面</title> 5 <meta http-equiv="Content-Type" content="text/html; charset=utf8"> 6 <link rel="stylesheet" type="text/css" href="css/app_style.css"> 7</head> 8<body> 9<div> 10 <h1>ログイン</h1><br> 11 <form method='POST'> 12 <input type="email" name="mail" placeholder="Email"> 13 <input type="password" name="pass" placeholder="Password"> 14 <br> 15 <input type="submit" name="login_user" value="ログイン"> 16 </form> 17 18 <form method='POST' action='user_create.php'> 19 <input type="submit" name="new" value="新規"> 20 </form> 21 <a href="reset_pass.php">パスワード忘れた場合</a> 22 23<?php 24require ('mysql_connect.php'); 25 26if (isset($_POST['login_user'])) { 27 $mail = $_REQUEST['mail']; 28 $pass = $_REQUEST['pass']; 29 $is_login = false; 30 if (!empty($mail) AND !empty($pass)) { 31 $sql_query = mysql_query("select * from users_info where mail='" . $mail . "' and password='" . $pass . "'"); 32 33 if ($sql_query)) { 34 $is_login = true; 35 } else { 36 echo "<p align='left' style='color: red;'>メールまたはパスワードが間違っています。</p>"; 37 } 38 } else { 39 if (empty($mail)) { 40 echo "<p align='left' style='color: red;'>メールが空です。</p>"; 41 } 42 if (empty($pass)) { 43 echo "<p align='left' style='color: red;'>パスワードが空です。</p>"; 44 } 45 } 46 if ($is_login == true) { 47 header("Location: ./top.php"); 48 mysql_close($sql_connect); 49 exit; 50 } 51} 52?> 53 54</div> 55</body> 56</html>
上記の部分「if ($sql_query))」の条件式でいけるかなと思ったのですが、SQL文自体にエラーがなかったので、条件式が成立してしまっている状態です。
回答2件
あなたの回答
tips
プレビュー