我正在尝试使用文本条目将文本添加到数据库,这是 index.php 的文本条目部分:
<form action="steamauth/senddb.php" method="get">
<input type="text" name="username" placeholder="John Doe">
<input type="text" name="steamid" placeholder="12939124953">
<input type="text" name="server" placeholder="VanityRP | DarkRP"><br><br>
<input type="submit" class='btn btn-success' style='margin: 2px 3px;'>
</form>
现在是 steamauth/senddb.php 代码:
$value1 = $_POST['username'];
$value2 = $_POST['steamid'];
$value3 = $_POST['server'];
$sql = "INSERT INTO StaffTeam (username, steamid, server) VALUES('".$value1."', '".$value2."', '".$value3."')";
if ($conn->query($sql) === TRUE) {
echo "Admin added succesfully, redirecting in 3 seconds...";
header( "refresh:3;url=http://vanityrp.site.nfoservers.com/index.php" );
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
所以,现在,问题是,我在数据库中得到空记录,我该如何解决
最佳答案
这里有两处错误。
首先,您在表单中使用 GET 方法,然后使用 POST 数组。
- 两者都需要匹配。 POST/POST 而不是 GET/POST。
然后你在标题之前输出,标题顶部有回显。
您现在的密码是开放给SQL injection .使用 mysqli_*
with prepared statements , 或 PDO与 prepared statements .
如果您尝试传递 MySQL 会报错的数据,例如 John's Bar & Grill
(撇号),那么您需要对数据进行转义;无论如何你应该做的事情。
即:
$var = mysqli_real_escape_string($conn, $_POST['var']);
您的列类型和长度也应该正确并且能够容纳数据。
添加error reporting到您的文件的顶部,这将有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:显示错误只应在试运行中进行,绝不能在生产中进行。
另外,请确保您已使用 mysqli_
成功连接到您的数据库。
- 不同的 MySQL API 不会混用。 (旁注)。
关于php - 使用 PHP 和 HTML 将文本字段插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34459581/