准备行数语句有问题

时间:2019-11-26 20:56:09

标签: php mysql mysqli xampp prepared-statement

我一直在使用PHP和SQL创建网站。在我的最后一个问题中,有人指出我应该使用准备好的语句来保护我的站点免受SQL注入。我一直在浏览我的网站,将所有查询都更改为准备好的语句,但是在用户注册时检查数据库中是否存在用户名时遇到问题。

这是我尝试过的代码,它不会产生任何错误,但是它允许用户使用我的users表中已经存在的用户名进行注册。

$uname = $_POST['uname'];
$stmt = $link->prepare("SELECT * FROM users WHERE username= ?");

   /* Bind parameters, s - string, b - blob, i - int, etc */
   $stmt -> bind_param("s", $uname);
   $stmt -> execute();

   /* Fetch the value */
   $stmt -> fetch();
   $numberofrows = $stmt->num_rows;

   /* Close statement */
   $stmt -> close();

if($numberofrows>0) {
   echo "Username Already Exist";
} else {
//rest of my code
}

谢谢!

0 个答案:

没有答案