我正在构建一个包含将数据输入数据库的网页。我成功连接到我的数据库,我的插入查询正在向数据库中添加行,但表单数据没有通过,因此正在创建行(我已在phpmyadmin中看到它们)但是数据是空的。
我有两页。一个用于显示表单,另一个用于接收表单数据并运行sql查询。
这是表单网页的数据
<body>
<form action="insert.php" method=”post”>
Venue:
<input type="text" name = "venue">
<br>
Date:
<input type="text" name = "date">
<br>
Time:
<input type="text" name = "time">
<br>
Postcode:
<input type="text" name = "postcode">
<br>
<input type="submit" Value = "submit" name= "submit">
</form>
这是我用于输入数据的代码。我没有包含数据库的连接代码,因为我没有遇到此问题。
$venue = $_POST['venue'];
$date = $_POST['date'];
$time = $_POST['time'];
$postcode = $_POST['postcode'];
$query = "INSERT into `event`(`eventVenue`, `eventDate`, `eventTime`,
`EventPostCode`) VALUES ( '$venue', '$date','$time', '$postcode' )";
mysqli_query($dbconn, $query);
<hr>
</body>
Db连接:
$host="50.62.209.87"; // Host name
$username="************"; // Mysql username
$password="********"; // Mysql password
$db_name="extras"; // Database name
// Connect to server and select databse.
$dbconn = mysqli_connect($host, $username, $password)or die("cannot connect");
mysqli_select_db($dbconn, $db_name)or die("cannot select DB");
答案 0 :(得分:6)
检查方法帖子的双引号。请改用
method="post"
答案 1 :(得分:1)
你必须分步解决问题:
echo $_POST
并查看每个值是否正常
var_dump($query)
并查看是否所有内容都适用于顶点和引号......
尝试没有``
答案 2 :(得分:0)
使用mysqli或PDO可以像下面一样阻止sql注入,希望这对你有用。我用过PDO。
$query = "INSERT INTO event (`eventVenue`, `eventDate`, `eventTime`,
`EventPostCode`) VALUES ( ':venue', ':date',':time', ':postcode' )";
$insert = $db -> prepare($query);
$insert -> execute(
array(
"venue" => $venue, "date" => $date, "time" => $time, "postcode" => $postcode)
)
);
答案 3 :(得分:0)
首先,使用该IP确保连接。由于它来自HTML表单,因此我建议您使用strip_tags
和isset
。它看起来没用,但它在我本地服务器上尝试时起作用。
$venue = isset($_POST['venue']);
$venue = strip_tags($venue);
$date = isset($_POST['date']);
$venue = strip_tags($date );
$time = isset($_POST['time']);
$venue = strip_tags($time );
$postcode = isset($_POST['postcode']);
$venue = strip_tags($postcode );
就是这样。此外,您还应该考虑如何按照建议处理sql注入的预防。
答案 4 :(得分:0)
由于form
中的错误作为“Mark Te”答案,因此似乎将元素作为默认GET
方法quotes
发送。但是,如果您要取消此操作,或者您计划从GET
接收数据,例如链接参数中的数据,只需从表单的POST
方法中重新获取数据。
<a href="insert.php?venue=lorem&date=2015-12-20&time=12">Get Result</a>
最好使用$_REQUEST
代替$_POST
。