gpt4 book ai didi

php - 如果变量在数据库中,则停止-如果变量不在数据库中-则输入它

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

我已经尝试完成这个脚本有一段时间了 - 我对 php 和 mysql 有点陌生,但我一直试图让它检查数据库中的用户名,然后如果用户名存在 - 停止检查db,如果不存在,则将其添加到数据库中。

这是我的代码:

                    //input from application
$test = "wheelsmanx";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT mainusername FROM CCCpro_test";
$result = $conn->query($sql);

if ($result->num_rows > 0) {

while($row = $result->fetch_assoc()) {
if ($row["mainusername"] === $test) {
echo "User Name Already In Use.";


}if($row["mainusername"] !== $test){
echo "this statement";

[code that inserts into db i can do this part myself]

}

}
$conn->close();

} else {
echo "0 results";
}

$conn->close();

最佳答案

您的代码的问题在于,您在已经确认该用户存在的 if 语句中执行了新名称的 INSERT 操作。此外,我认为您通过选择所有用户搞乱了 SELECT 语句。

查看INSERT ON DUPLICATE为了更好的方法来做到这一点,或修改您的代码如下。

                $sql = "SELECT mainusername FROM CCCpro_test WHERE mainusername = $test";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
echo "User Name Already In Use.";
}
else{ //no rows selected therefore the user doesn't exist
[code that inserts into db i can do this part myself]
}

$conn->close();

请阅读我有地方要去,所以我很懒,所以我没有绑定(bind) $test 变量,因此请勿复制并粘贴此代码而不将其更新为绑定(bind) $test 变量。请阅读this post关于PDO和变量绑定(bind)以防止SQL注入(inject)。

关于php - 如果变量在数据库中,则停止-如果变量不在数据库中-则输入它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32803541/

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