【发布时间】:2016-10-22 01:42:54
【问题描述】:
我创建了一个 html 表单,我一直在尝试将用户要填写表单的数据发送到我创建的 mysqli 数据库。 我已经创建了数据库并为表单的 6 个字段创建了 6 个列。 我编写了以下 php 代码来执行这项工作,但它似乎不起作用......
<?php
//get the form elements and store them in variables
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$postal = $_POST['postal'];
$acceptance = $_POST['acceptance'];
//establish connection
$con = mysqli_connect('localhost', 'db_user', 'db_password' , 'db_name', 'db_socket');
//on connection failure, throw an error
if(!$con) {
die('Could not connect: '.mysql_error());
}
$sql = 'INSERT INTO db_table1 ( firstname, lastname, email, postal, phone, acceptance )
VALUES ( $_POST[firstname], $_POST[lastname], $_POST[email], $_POST[postal], $_POST[phone], $_POST[acceptance] )' ;
if ($sql) {
echo 'Success';
}
else {
die ('Error');
}
$mysqli->close();
//Redirects to the specified page
header("Location: http://www.example.com/success");
?>
你能帮帮我吗?问题出在哪里,没有任何东西进入数据库?
【问题讨论】:
-
警告:当使用
mysqli时,您应该使用parameterized queries 和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了严重的SQL injection bug。 切勿将$_POST或$_GET数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。