【发布时间】:2019-10-26 03:16:08
【问题描述】:
请对我温柔一点,我最近刚刚尝试学习 PHP/SQL。
问题是第一个查询在不应该时总是为真(基于我所知道的)。
查询只是声明获取用户提供的“用户名”,其中 betakey=$betakey。除了 betakey 列之外,我的数据库列仍然为空这一事实根本不会使该查询语句为真。
请帮忙,也许我缺少这方面的一些知识。
<?php
header('Access-Control-Allow-Origin: *');
$firstName = $_GET['rfirstname'];
$lastName = $_GET['rlastname'];
$username = $_GET['rusername'];
$password = $_GET['rpass'];
$betakey = $_GET['rkey'];
$host="localhost"; // Host name
$db_username="**"; // Mysql username
$db_password="**"; // Mysql password
$db_name="**"; // Database name
$conn = mysqli_connect("$host", "$db_username", "$db_password","$db_name");
if (!$conn){
die ("Error: ".mysqli_connect_error());
}
$query1 = "SELECT username='$username' FROM users2 WHERE betakey='$betakey';";
$result_1 = mysqli_query($conn,$query1);
if(mysqli_num_rows($result_1) > 0){
echo 'Beta key is used';
}else{
$query2 = "UPDATE users2 SET firstName='$firstName',lastName='$lastName',username='$username',password='$password' WHERE betakey='$betakey'";
echo 'Registration Successful';
}
mysqli_close($conn);//Close off the MySQL connection to save resources.
?>
【问题讨论】:
-
您的第一个查询应该只是
SELECT username FROM users2 WHERE betakey='$betakey'; -
除了查询中的错字;该代码是如此不安全和危险,几乎吓到我了。
-
您也从未执行过更新查询,因此也属于印刷错误。
-
@ catcon,我已经尝试过该查询,但结果仍然相同.. 稍加跟进,我尝试在 sql 中运行查询,结果是用户名列,但为空白。这算作 mysqli_num_rows 计数吗?,