Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-将表单输入添加到数据库中_Php - Fatal编程技术网

PHP-将表单输入添加到数据库中

PHP-将表单输入添加到数据库中,php,Php,我正在尝试将恢复的表单输入添加到数据库中 <form action="index.php" method="post"> <input type="text" name="firstname" id="firstname"> <br> <input type="text" name="lastname" id=&qu

我正在尝试将恢复的表单输入添加到数据库中

<form action="index.php" method="post">
<input type="text" name="firstname" id="firstname">
<br>
<input type="text" name="lastname" id="lastname">
<br>
<input type="submit" name="submit" value="Submit">
示例:Firstname=Jason/Lastname=Haw

单击提交按钮后,我看到错误消息:字段列表中的未知列“Jason”

哪里做错了?

$query=“插入用户(firstname,lastname)值(“$firstname”,“$lastname”)”

为$firstname单独报价

但这不是一个正确的方法,您应该使用预先准备好的语句。
您的查询存在sql注入的风险,因为无法逃避输入。

非常感谢。为什么我需要添加单个报价?我是mysql的新手,我一步一步地通过示例。因为$query是字符串。如果不使用单引号/双引号,查询将变成
插入用户(firstname,lastname)值(abc,abc)
,abc将视为列名而不是值请注意:您对SQL注入非常开放,应该使用参数化的预处理语句,而不是手动构建查询。它们由PDO或MySQLi提供。不要相信任何类型的输入。您的代码不安全。使用事先准备好的陈述。
if(isset($_POST['submit'])) {
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];

$query = "INSERT INTO users (firstname, lastname) VALUES ($firstname, $lastname)";
if($conn->query($query) === true) {
    echo "added";
}else {
    echo $con->error;
}