2011-08-14 2 views
0

私はログインしていますが、MySQLクエリから行数をカウントするとエラーが発生します。エラーは以下のとおりです。ローをカウントするエラー

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /home/nzcraftn/public_html/bs/login.php on line 13 

Warning: Cannot modify header information - headers already sent by (output started at /home/nzcraftn/public_html/bs/login.php:13) in /home/nzcraftn/public_html/bs/login.php on line 21 

私はこのコードをログインに使用しています。

<?php 
session_start(); 
include('config.php'); 

$user = protect($_POST['username']); 
$pass = protect($_POST['password']); 

$salt = "a123b123"; 
$thepass = md5($salt.md5($pass)); 

$res = mysql_query("SELECT `username`,`password` WHERE (`username` = '$user' AND `password` = '$thepass')"); 

$count = mysql_num_rows($res); 

if($count == 1) { 
$_SESSION['user'] = $user; 
print($_SESSION['user']); 
//header('Location: /panel/index.php'); 
} else { 
$_SESSION['errormsg'] = "<div style='color: #FF0000'>Invalid Login!</div>"; 
header('Location: index.php'); 
} 
?> 
+0

エラーはわかりやすいものです。 mysql_queryは有効なクエリを与えなかったのでfalseを返しました。どの表を選択するかは指定していません。 'false'で行を数えることはできません。 –

+0

可能な複製[mysql_fetch_array()は、パラメータ1がリソースであることを期待し、selectで指定されたブール値](http://stackoverflow.com/questions/2973202/mysql-fetch-array-expects-parameter-1-to-be-resource) -boolean-given-in-select) – legoscia

答えて

2

あなたの文のエラーを持っているので、mysql_queryfalseを返しています。コードにエラーチェック(およびデバッグ用のロギング)を追加してください。

(あなたSELECTFROM句が欠落している。)

1

は、SQLクエリを自分でプロンプトのMySQLでそれを実行して、正しく動作していることを確認します。次のようなSQLクエリのトラブルシューティングコードを追加してください。

$query = 'SELECT ...'; 
$res = mysql_query($query) or die(mysql_error()."\n".$query); 
関連する問題