<?php
error_reporting(0);
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
require_once('dbConnect.php');    $check = "SELECT * FROM users (username,password,email) WHERE username = '$username'";
    $result = mysqli_query($con,$check);
$number = mysqli_num_rows($result);

$sql = "INSERT INTO users (username,password,email) VALUES ('$username','$password','$email')"; if($number==0){
if(mysqli_query($con,$sql))
{
echo "successfully Register";
} else {
echo 'database error';
}
} else {
echo "username exist";
}
?>

解决方案 »

  1.   

    忘了写问题,请问PHP哪里有错 ? 无法检测数据库中用户名是否存在
      

  2.   

    $check = "SELECT * FROM users (username,password,email) WHERE username = '$username'";改为
    $check = "SELECT * FROM users WHERE username = '$username'";
      

  3.   

    如果我传递给你的$username 是 ' or 1=1 # 那么你的语句就会变成 SELECT * FROM dean_students WHERE name = '' and 1 = 1 #'你可以试着运行一下  我也可以给你传递 ' or 1 = 1 or 2 != ' 你的sql语句就变成了SELECT * FROM users  WHERE username = '' or 1 = 1 or 2 != ''运行下以后你就知道你还需要做什么操作了
      

  4.   

     上面打错了 第一个断的sql语句中的查询字段应该是username
      

  5.   

    你是说,我的sql 无论输入什么,总有一个值为真?
      

  6.   

    为什么我用楼主的方法 永远都是传入值 不会跳出username exist 
    难受啊
      

  7.   

    $check = "SELECT * FROM users (username,password,email) WHERE username = '$username'";

    $check = "SELECT * FROM users WHERE username = '$username'" limit 1;
      

  8.   

    注意防 SQL 注入