我试图在我的sql数据库中插入“UserId”列,使用php,用户在HTML表单中输入的文本。 下面是一个帮助我弄清楚我做错了什么的基本例子。
HTML
<html>
<form action="index1.php" method ="post" name="trial">
<input type="text" name="testName" id="testId">
<br>
<input type="submit" value="Submit">
</form>
</html>
PHP
$servername = "localhost";
$username = "root";
$password = "xx";
$dbname = "wp";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$UserId = $_POST['testName'];
$sql = "INSERT INTO UserProfile (UserId) VALUES ('$testName')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
一些注意事项:
我可以连接到数据库并插入正确的列复选框和表格中的无线电值
我找不到在数据库中插入从表单输入的用户文本的方法(UserProfile是表,UserId是列)。 使用javascript变量,如下面的那个,有帮助吗?
var testVar = document.getElementById("testId").value;
我知道我打算使用上面的代码进行黑客攻击,我想稍后改进它,但我认为我需要首先找出基础知识(即:如何添加用户文本输入数据库)
比你提前得到任何帮助!
答案 0 :(得分:3)
您将值存储在$ UserId中,而不是存储在$ testName:
中将SQL查询更改为
$sql = "INSERT INTO UserProfile (UserId) VALUES ('$UserId')";
我认为这会有所帮助。 BTW:想想SQL注入!看这里:How can I prevent SQL injection in PHP?
答案 1 :(得分:0)
看这里
$sql = "INSERT INTO UserProfile (UserId) VALUES ('$testName')";
在sql语句中将$ testName更改为$ UserId,因为它是php中新变量的名称:
$UserId = $_POST['testName'];
$sql = "INSERT INTO UserProfile (UserId) VALUES ('$UserId')";
但我建议你:
1-使用PDO进行php中的任何sql处理
2-使用mysqli_real_escape_string保护您的代码免受威胁。
使它像:
$UserId = mysqli_real_escape_string($con, $_POST['testName']);