我正在开发一个Android应用程序,我已将我的应用程序连接到云服务器。现在我想从登录数据库中删除特定用户,即服务器中的users表。输入是从应用程序提供的。输入是电子邮件ID。
我面临的问题是,即使数据库中的数据不存在,我总是将结果视为真。
示例:如果有电子邮件ID" example@email.com"在数据库中,如果给出的输入是" example@email.com" ;,则查询结果为真 如果输入的电子邮件是" no@email.com"这在数据库中不存在,结果总是如此......
下面是我的PHP代码,用于与数据库以及Sndroid应用程序进行通信。
data
答案 0 :(得分:1)
$conn->query($sql)
将为true。如果您想知道受影响的行数,则需要使用mysql_affected_rows函数。
注意这一行:
$sql = "DELETE FROM `users` WHERE (`email`='".$email."')";
将允许SQL注入攻击。查看prepared statements。
答案 1 :(得分:0)
查询函数失败时返回FALSE。对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。
您可以使用
$mysqli->affected_rows
查找已删除的行数,然后确定是否实际删除了行
答案 2 :(得分:0)
条件写入的方式正常,您将始终获得TRUE值,因为它不会执行查询,只检查查询是否可执行。
你需要使用
mysql_affected_rows or $mysqli->affected_rows
看看这行是否真的受到影响。