偏移量0对于MySQL结果索引10无效,无法从MySQL php检索数据
在脚本中,无论输入正确或错误的用户名,结果都是一样的 是这样的: {success:1,message:Login successfully!,用户:{customerID:null,firstname:null,lastname:null,address:null,postcode:null,phone:null}} 我尝试使用mysql_data_seek,它返回的偏移量0对于mysql结果索引10无效 我猜mysql\u查询没有获取任何内容 有人能帮我解决这个问题吗偏移量0对于MySQL结果索引10无效,无法从MySQL php检索数据,php,html,mysql,sql,json,Php,Html,Mysql,Sql,Json,在脚本中,无论输入正确或错误的用户名,结果都是一样的 是这样的: {success:1,message:Login successfully!,用户:{customerID:null,firstname:null,lastname:null,address:null,postcode:null,phone:null}} 我尝试使用mysql_data_seek,它返回的偏移量0对于mysql结果索引10无效 我猜mysql\u查询没有获取任何内容 有人能帮我解决这个问题吗 <?PHP
<?PHP
$username = "";
$password = "";
$re = array();
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
$username = $_POST['username'];
$password = $_POST['password'];
$username = htmlspecialchars($username);
$password = htmlspecialchars($password);
//==========================================
// CONNECT TO THE LOCAL DATABASE
//==========================================
$dbusername = "";
$dbpassword = "";
$host = "";
$dbname = "";
$db_handle = mysql_connect($host, $dbusername, $dbpassword);
$db_found = mysql_select_db($dbname, $db_handle);
if ($db_found) {
$username = quote_smart($username, $db_handle);
$password = quote_smart($password, $db_handle);
$query = "SELECT * FROM Customer WHERE username = $username AND password = md5($password)";
$info = mysql_query($query);
//====================================================
// CHECK TO SEE IF THE $result VARIABLE IS TRUE
//====================================================
if ($info) {
$user = mysql_fetch_array( $info );
echo $user['firstname'];
$re["success"]=1;
$re["message"] = "Login successfully!";
//add parameters that will return to android
$re["user"]["customerID"]=$user['customerID'];
$re["user"]["firstname"]=$user['firstname'];
$re["user"]["lastname"] = $user['lastname'];
$re["user"]["address"]=$user['address'];
$re["user"]["postcode"]=$user['postcode'];
$re["user"]["phone"]=$user['phone'];
$re= json_encode($re);
echo $re;
session_start();
$_SESSION['login'] = "1";
$_SESSION["re"]=$re;
//header ("Location: userdata.php");
}
else {
$re["success"]=0;
$re["message"] = "User Not Found";
$re = json_encode($re);
echo $re;
}
}
else {
$re["success"]=0;
$re["message"] = "Can not connect to database";
$re= json_encode($re);
echo $re;
}
}
?>
<html>
<head>
<title>Basic Login Script</title>
</head>
<body>
<FORM NAME ="Customer Login" METHOD ="POST" ACTION ="login.php">
Username: <INPUT TYPE = 'TEXT' Name ='username' value="<?PHP print $username;?>" maxlength="45">
Password: <INPUT TYPE = 'TEXT' Name ='password' value="<?PHP print $password;?>" maxlength="45">
<P align = center>
<INPUT TYPE = "Submit" Name = "Submit" VALUE = "Login">
</P>
</FORM>
</body>
</html>
您需要检查是否有任何行返回
此外,会话_start必须位于文件的顶部
session_start();
$query = "SELECT * FROM Customer WHERE username = $username AND password = md5($password) LIMIT 1";
$info = mysql_query($query);
$found = mysql_num_rows($info);
if($found!=0)
{
$user = mysql_fetch_array( $info );
echo $user['firstname'];
$re["success"]=1;
$re["message"] = "Login successfully!";
//add parameters that will return to android
$re["user"]["customerID"]=$user['customerID'];
$re["user"]["firstname"]=$user['firstname'];
$re["user"]["lastname"] = $user['lastname'];
$re["user"]["address"]=$user['address'];
$re["user"]["postcode"]=$user['postcode'];
$re["user"]["phone"]=$user['phone'];
$re= json_encode($re);
echo $re;
$_SESSION['login'] = "1";
$_SESSION["re"]=$re;
//header ("Location: userdata.php");
}
注意:mysql_*函数已弃用。尽快移动mysqli_*函数你能试试这个吗,添加行数检查mysql_num_rows$info
注意:如果结果集为空,请使用mysqli_*函数,而不是不推荐使用的mysql_*函数。mysql_数据搜索将失败,并显示E_警告。我认为这是在您的情况下发生的,因为在调用mysql\u data\u seek之前,您没有检查结果集是否为空
始终检查结果中的行数,如果行数>=1,则可以安全地调用mysql\u data\u seek我添加了mysql\u num\u rows$info;结果是{success:0,message:User Not Found},无论输入是什么。mysql\u查询不会向我返回任何内容。如何修复此问题?echo$query string并在mysql查询窗口中运行,以检查表customer是否有数据$info=mysql\u query$query或dieMySQL ERROR:.mysql\u ERROR;告诉我错误信息当然,它有数据。我已经仔细检查过了。我添加了$info=mysql\u query$query或diemsql错误:.mysql\u ERROR;但一切都没有改变。仍然{success:0,message:User Not Found}我添加了mysql\u num\u rows$info;结果是{success:0,message:User Not Found},无论输入是什么。mysql\u查询不会向我返回任何内容。我怎样才能解决这个问题?
$query = "SELECT * FROM Customer WHERE username = '".$username."' AND password = '".md5($password)."' ";
$info = mysql_query($query) or die("MySQL ERROR: ".mysql_error());
$count = mysql_num_rows($info); // added rows count check
if($count>0){
$user = mysql_fetch_array( $info );
echo $user['firstname'];
$re["success"]=1;
$re["message"] = "Login successfully!";
//add parameters that will return to android
$re["user"]["customerID"]=$user['customerID'];
$re["user"]["firstname"]=$user['firstname'];
$re["user"]["lastname"] = $user['lastname'];
$re["user"]["address"]=$user['address'];
$re["user"]["postcode"]=$user['postcode'];
$re["user"]["phone"]=$user['phone'];
session_start();
$_SESSION['login'] = "1";
$_SESSION["re"]=$re;
//header ("Location: userdata.php");
$re= json_encode($re);
echo $re;
}
else {
$re["success"]=0;
$re["message"] = "User Not Found";
$re = json_encode($re);
echo $re;
}