gpt4 book ai didi

php - 检查表中的 mysql 列是否有 php 中的重复项

转载 作者:行者123 更新时间:2023-11-29 04:45:13 25 4
gpt4 key购买 nike

我正在尝试检查用户名列是否有重复项,如果找到,“用户名已被占用”应该回显。无论输入什么作为用户名“username is ok”总是回显...这是什么原因造成的,我该如何更改?

$username = preg_replace('#[^a-z0-9]#i', '', $_POST['usernamecheck']);
$sql = "SELECT * FROM riders WHERE username='$username' LIMIT 1";
$query = mysqli_query($connect, $sql);
$uname_check = mysqli_num_rows($query);
if ($uname_check == 0) {
echo '<strong style="color:#009900;">' . $username . ' is OK</strong>';
exit();
} else {
echo '<strong style="color:#F00;">' . $username . ' is taken</strong>';
exit();
}

最佳答案

让我们以正确的方式调试它。当您的代码不起作用时,您可以调试它;不只是猜测事情。要从 PHP 调试 MySQL 问题,您必须查看这些函数返回的值是什么?而不仅仅是期望最好的情况。计算机科学不是靠猜测,它对大多数事情都非常准确。

第 1 步:

   // $connect = mysqli_connect("localhost", "my_user", "my_password", "world");

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

第 2 步:

    $username=mysqli_real_escape_string($connect,$username);
$sql = "SELECT 1 FROM riders WHERE username='$username' LIMIT 1";
if ($result=mysqli_query($connect, $sql)) {
$uname_check=mysqli_num_rows($result);
}
else
{
printf("Error message: %s\n", mysqli_error($connect));
}

第 3 步:

    echo intval($uname_check);

当你到达这里时,你就会确切地知道哪里出了问题。

之后你可以继续你的if

if ($uname_check == 0)
{
echo '<strong style="color:#009900;">' . $username . ' is OK</strong>';
}
else
{
echo '<strong style="color:#F00;">' . $username . ' is taken</strong>';
}
exit();

关于php - 检查表中的 mysql 列是否有 php 中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20176613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com