2011-07-04 61 views
-1

Possible Duplicate:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select警告:mysql_num_rows()预计参数1是资源,布尔在C中给出: XAMPP htdocs中 HTML 登录 checklogin.php上线23

你好我尝试让我的登录系统和去我一直在这里得到这个错误是我的代码:

<?php 
$host="localhost"; 
$username="root"; 
$password="power1"; 
$db_name="members"; 
$tbl_name="users"; 

$link = mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

$Email=$_POST['Email']; 
$Password=$_POST['Password']; 

$Email = stripslashes($Email); 
$Password = stripslashes($Password); 
$Email = mysql_real_escape_string($Email); 
$Password = mysql_real_escape_string($Password); 


$sql="SELECT * FROM $tbl_name WHERE Email='$Email' AND password ='$Password'"; 
$result=mysql_query($sql, $link) or die ('Unable to run query:'.mysql_error()); 


$count=mysql_num_rows($result); 


if($count==1){ 
session_register("Email"); 
session_register("Password"); 
header("location:login_success.php"); 
} 
else { 
echo "Wrong Email or Password"; 
} 
?> 

它现在的工作

+0

是什么'回声$ sql'打印? – k102

+0

解析错误:语法错误,意外的T_IF,期待','或';'在第26行C:\ xampp \ htdocs \ html \ Login \ checklogin.php – spencer

+1

http://stackoverflow.com/questions/5473981/warning-mysql-fetch-array-expects-parameter-1-to-be-resource -boolean-given-i – 2012-07-10 11:54:52

回答

2

它可以是你的查询失败出于某种原因,尝试

$link = mysql_connect("$host", "$username", "$password")or die("cannot connect"); 

//.... 

$sql="SELECT * FROM $tbl_name WHERE username='$Email' AND password ='$Password'"; 
$result=mysql_query($sql, $link) or die ('Unable to run query:'.mysql_error()); 

if(!$result) die ('Unable to run query:'.mysql_error()); 

当查询失败,它返回FALSE,因此要传递到mysql_num_rows()的BOOLEAN;在继续使用代码之前,您应该始终检查结果是否存在。

+0

与此仍然无法确定查询中的实际问题 –

+0

@Shakti:并且?我们还没有得到足够的数据来确定查询失败的原因。 –

+0

我试过这个,但它没有工作 – spencer

1

For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.

For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.

http://php.net/manual/en/function.mysql-query.php

您的查询时出现错误。

1

试试这个:

$sql="SELECT * FROM ".$tbl_name." WHERE username='".$Email."' AND password ='".$Password."'"; 
相关问题