gpt4 book ai didi

PHP 创建 2 行并且不检查输入

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

我想做的是将用户名(只是用户名)发送到 MySQL 数据库(如果该数据库尚不存在的话)。

基本上,我获取输入,将其与用户名列中的所有其他行进行检查,如果输入与其中任何一个都不相同,则将输入添加到数据库。这是我的代码:

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



if( isset( $_POST["submit"] ) ) {
$sql="INSERT INTO users (username)
VALUES('$_POST[username]')";


$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if ($row["username"] == $_POST[username]) {
die("Username is already in use!");
}
}
}


if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
die("Error, please consult an admin: " . $sql . "<br>" . $conn->error);
}
$conn->close();

没有报告错误,但它只是创建了两次数据,并且不检查输入。我看不出怎么办。这就是我尝试过的方法。看起来应该可行,但事实并非如此。为什么?

我正在使用 MySqli 面向对象

最佳答案

试试这个代码...

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



if( isset( $_POST["submit"] ) ) {
$sql="INSERT IGNORE INTO users (username)
VALUES('$_POST[username]')";


$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
if ($row["username"] == $_POST[username]) {
die("Username is already in use!");
}
}
echo "New record created successfully";
}else {
die("Error, please consult an admin: " . $sql . "<br>" . $conn->error);
}
$conn->close();

关于PHP 创建 2 行并且不检查输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27469161/

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