我尝试使用文本条目向数据库添加文本,这是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;
}
所以,现在,问题是,我在数据库上获取空记录,我该如何解决
答案 0 :(得分:2)
这里有两件事不对。
首先,您在表单中使用GET方法,然后使用POST数组。
然后你在标题之前输出,并在标题的顶部输出echo。
您目前的代码向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_
成功连接到您的数据库。