使用PHP和HTML将文本字段插入数据库

时间:2015-12-25 02:38:56

标签: php html mysql

我尝试使用文本条目向数据库添加文本,这是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;
}

所以,现在,问题是,我在数据库上获取空记录,我该如何解决

1 个答案:

答案 0 :(得分:2)

这里有两件事不对。

首先,您在表单中使用GET方法,然后使用POST数组。

  • 两者都需要匹配。 POST / POST而不是GET / POST。

然后你在标题之前输出,并在标题的顶部输出echo。

您目前的代码向SQL injection开放。使用mysqli_* with prepared statementsPDOprepared 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不会混用。 (旁注)。