gpt4 book ai didi

php - 变量未插入到表中

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

我有一个非常简单的代码将数据插入数据库,还检查表中是否已有相同的数据

[HTML]

<html>
<head>
<title>nickname</title>
</head>
<body>
<p>input nickname</p>
<form action="foo.php" method="post">
<input type="text" name="nickname" />
<input type="submit">
</form>
</body>
</html>

[PHP]

//foo.php
if(isset($_POST['nickname']) && !empty($_POST['nickname'])) {
$nickname = $_POST['nickname'];

//Object Oriented way
$servername = "localhost";
$username = "root";
$password = "foo_bar";
$dbname = "nickname";

//check connection
$conn = new mysqli($servername, $username, $password, $dbname);

if($conn->connect_error) {
die("cannot connect:".$conn->connect_error);
}

$sql = "SELECT * FROM nickname WHERE nickname='$nickname'";
$result = $conn->query($sql);

if($result->num_rows > 0) {
echo "nickname exists!";
} else {
$sql = "INSERT INTO nickname(nickname) VALUES(".$nickname.")";
$conn->query($sql);
echo "welcome $nickname!";
}

$conn->close();

} else {
echo "please input your nickname";
}

我还在学习如何使用 MySQL,我做错了什么?尤其是这一行

$sql = "INSERT INTO nickname(nickname) VALUES(".$nickname.")";
$conn->query($sql);

变量中的数据没有插入到表中,没有任何反应。但如果我替换 $nickname以纯文本形式插入数据。

编辑
为什么这是重复的?问题甚至不是“如何防止sql注入(inject)”

最佳答案

给变量加上单引号

$sql = "INSERT INTO nickname(nickname) VALUES('".$nickname."')";
$conn->query($sql);

关于php - 变量未插入到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42201636/

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