php - 如何使用 PHP 和 MySQL 检查重复的用户名?

标签 php mysql duplicates

我刚刚开始学习 PHP,我认为学习一些 MySQL 也是个好主意。所以我开始编写代码,但出于某种奇怪的原因,我不断收到重复的用户,这真的很糟糕。

<?php
$link = mysqli_connect(here i put the data);
if(!$link)
{
    echo "Error: " . mysqli_connect_errno() . PHP_EOL;
    exit;
}
else
{
    if(isset($_POST['user']))
    { echo "User set! "; } 
    else { echo "User not set!"; exit; }
    if(isset($_POST['pass']) && !empty($_POST['pass']))
    { echo "Password set! "; } 
    else { echo "Password not set!"; exit; } 
    $num = mysqli_num_rows(mysqli_query("SELECT * FROM `users` WHERE ( username = "."'".$_POST['user']."' )"));
    if($num > 0)
    { echo "Cannot add duplicate user!"; }
    mysqli_close($link);
}
?>

由于某些奇怪的原因,我没有得到我应该得到的输出。我已经尝试了一些在 StackOverflow 上找到的解决方案,但它们没有用。

最佳答案

connectionObject 的第一个参数未在 mysqli_query 中给出:

$num = mysqli_num_rows(mysqli_query($link, "SELECT * FROM `users` WHERE ( `username` = '".$_POST['user']."' )"));
//----------------------------------^^^^^^^

此外,您的代码容易受到 SQL 注入(inject)攻击。一个简单的修复方法是:

$_POST['user'] = mysqli_real_escape_string($link, $_POST['user']);

关于php - 如何使用 PHP 和 MySQL 检查重复的用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38244225/

相关文章:

mysql - Node JS等待一系列mysql查询

mysql - 选择填充字段较多的记录

PHPExcel - 锁定正在查看的文件

php - 具有相同名称的多个文本输入 - 添加到数据库

python - 增量行 MySql Python

MySQL优化计数查询

arrays - 消除数组中的重复项 (JSONiq)

java - 如何只打开CHM文件的一个实例?

php - $_SERVER ['REMOTE_ADDR' ] 总是 isset() 吗?

php - PHP Powershell cmdlet问题与管道符号和变量