This question already has answers here:
Stop data inserting into a database twice
(16个答案)
5年前关闭。
我在下面有此代码,并且工作正常,除了刷新页面时会插入空白行。有人知道我需要在这里做什么吗?
我试图找到条件if语句,该语句可以阻止代码创建空白行,但没有找到有效的解决方案。
任何帮助表示赞赏。
重要的是要注意,如果if语句中给出的任何字段为空,查询将不会运行
请阅读解决方案中的评论
(16个答案)
5年前关闭。
我在下面有此代码,并且工作正常,除了刷新页面时会插入空白行。有人知道我需要在这里做什么吗?
<?php
$con=mysqli_connect("localhost","name","password","inventory");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
// escape variables for security
$inv_number = mysqli_real_escape_string($con, $_POST['inv_number']);
$date = mysqli_real_escape_string($con, $_POST['date']);
$date_type = mysqli_real_escape_string($con, $_POST['date_type']);
$item1 = mysqli_real_escape_string($con, $_POST['item1']);
$location1 = mysqli_real_escape_string($con, $_POST['location1']);
$sql="INSERT INTO invoice (inv_number, date, date_type, item1, location1)
VALUES ('$inv_number', '$date', '$date_type', '$item1', '$location1')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo 'Invoice #'.$_POST['inv_number'].' recorded';
mysqli_close($con);
?>
我试图找到条件if语句,该语句可以阻止代码创建空白行,但没有找到有效的解决方案。
任何帮助表示赞赏。
最佳答案
<?php
$con=mysqli_connect("localhost","name","password","inventory");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if (empty($_POST['inv_number']) || empty($_POST['date']) ||empty($_POST['date_type'])
|| empty($_POST['item1']) || empty($_POST['location1']))
{
echo "Re direct user by using header or show them messages";
}
else {
// set your variable and run your query
//i just copy and posted your code from your question
// escape variables for security
$inv_number = mysqli_real_escape_string($con, $_POST['inv_number']);
$date = mysqli_real_escape_string($con, $_POST['date']);
$date_type = mysqli_real_escape_string($con, $_POST['date_type']);
$item1 = mysqli_real_escape_string($con, $_POST['item1']);
$location1 = mysqli_real_escape_string($con, $_POST['location1']);
$sql="INSERT INTO invoice (inv_number, date, date_type, item1, location1)
VALUES ('$inv_number', '$date', '$date_type', '$item1', '$location1')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo 'Invoice #'.$_POST['inv_number'].' recorded';
}
mysqli_close($con);
?>
重要的是要注意,如果if语句中给出的任何字段为空,查询将不会运行
请阅读解决方案中的评论
08-25 18:11