我正在开发一个android应用程序。此应用程序的“登录和注册”页面与php页面连接,并且数据通过php页面存储到mySql数据库中。现在,当用户单击“注册”按钮时,数据应通过php保存在数据库中。一切正常。当用户单击“登录”时,应验证用户名和密码。这太好了。但是,当用户单击登录时,我想在验证用户名和密码后立即将数据从一个表复制到另一表。标志应设置为“ 1”并发送到android。但是,如果我在php代码中添加了对复制数据的查询,那么该查询就不会执行,并且Flag也不会发送到android应用程序。如果我评论$ select3查询,它的工作正常。请给我解决方案。我是php和mysql的全新手。看下面的代码:
<?php
// Connection...
$name = mysqli_real_escape_string($con, $_POST['Uname']);
$password =mysqli_real_escape_string($con, $_POST['Password']);
$flag['code']=0;
$select2="update Table1 SET TimeIN=NOW() where BINARY Uname=BINARY'$name' AND BINARY Password = BINARY'$password'";
$select3 = "insert into Table2 (Uname,Password,Email,Mobile,IP_Address,TimeIN,TimeOUT)select Uname,Password,Email,Mobile,IP_Address,Time,Timeout from Insert1 where BINARY Uname = BINARY '$name' AND BINARY Password = BINARY'$password';"
$result=mysqli_query($con,"select * from Table1 where BINARY Uname = BINARY'$name' AND BINARY Password = BINARY'$password'");
$s=mysqli_query($con,$select2);
$t=mysqli_query($con,$select3);
$num_rows = $result->num_rows;
if($num_rows > 0)
{
$flag['code']=1;
}
print(json_encode($flag));
mysqli_close($con);
?>
您可以更好地使用Mysqli对象。例如:
$database = new mysqli(url, username, password, database);
$query = $database->stmt_init($select);
$query->execute();
但是使用准备好的语句更安全:
$query = $database->stmt_init();
$query->prepare("update Table1 SET TimeIN=NOW() where Uname=? AND BINARY Password = ?");
$query->bind_param("ss", $uname, $password); //with ss you say you will bind two strings to the question marks.
$query->execute();
读取数据:
$query = $database->stmt_init();
$query->prepare("select * from Table1 where Uname =? AND Password =?;");
$query->bind_param("ss", $uname, $password);
$query->execute();
$rows = $query->num_rows;
我希望这能帮到您。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句