mysqli数据插入工作正常但没有数据插入数据库

时间:2017-08-14 04:52:11

标签: php html

虽然我理解php的基础,但我对php很新。大部分都是至少。

我的php脚本有2个问题。

一: 即使我输入文本框内的信息,它总是将我引导到?insert = empty我不知道为什么它总是告诉我其中一个框是空的,即使它不是。是输入类型=“日期”?。

二: 我尝试删除if(empty)方法,留下mysqli查询。虽然没有数据插入数据库,但它工作得很好。

PHP

session_start();



if (isset($_POST['submit'])) {

include 'includes/dbh.inc.php';
$id = $_GET['id'];
$c_id = $_REQUEST['u_uid'];
$e_name = mysqli_real_escape_string($conn, $_POST['e_name']) ;
$d_event = mysqli_real_escape_string($conn, $_POST['d_event']) ;
$t_event = mysqli_real_escape_string($conn, $_POST['t_event']) ;
$e_t_event = mysqli_real_escape_string($conn, $_POST['e_t_event']) ;
$theme = mysqli_real_escape_string($conn, $_POST['theme']) ;
$date = date('Y-m-d H:i:s');


    if (empty($e_name) || empty($d_event) || empty($t_event) || empty($e_t_event) || empty($theme)){

        header("Location: ../package.all.php?insert=empty");
        exit();
    }else{




$sql = "INSERT INTO event_table (event_name, event_date, event_time_start, event_time_end, cusact_id, theme, reserve_date_time, package_id) VALUES ('$e_name', '$d_event', '$t_event', '$e_t_event', '$theme', '$date', '$id');";
mysqli_query($conn, $sql);

header("Location: ../package.all.php?insert=success");

}
}
 else {

    echo 'isset was false'; 
    header("Location: ../inquire-packages.inc.php?insert=failed");

}

HTML

<form action="includes/inquire-packages.inc.php" method="POST">
<label>Event Name</label>
<input type="text" name="e_name" placeholder="Enter Event Name*"/>

<label for="job">Day of the Event</label>
<input type="date" name="d_event" placeholder="Enter Date of Event*"/>


<label for="job">Time of the Event</label>
<input type="Time" name="t_event" placeholder="Enter Time of Event*"/>

<label for="job">End Time of the Event</label>
<input type="Time" name="e_t_event" placeholder="Enter End Time of Event*"/>

<label>Theme</label>
<input type="text" name="theme" placeholder="Enter Theme*"/>
<input name="submit" type="submit" value="Submit"/>
</form>

如果这是一个愚蠢的问题,我很抱歉,但我真的想学习PHP代码。

谢谢你, 奥马

2 个答案:

答案 0 :(得分:4)

第一名count列与value count不匹配。您的列数为8,但值为7。所以你错过了一个值。尝试调试它。

第二名:我猜你错过了$c_id

3rd:尝试使用预准备语句以避免sql注入。

第4代: Header()函数不会终止代码执行。所以在标题函数之后使用exit()

第5名:添加错误处理程序mysqli_query($conn, $sql) or die(mysqli_error($conn));

6th:从哪里获得这两个值$id = $_GET['id'];$c_id = $_REQUEST['u_uid'];

PHP:

$sql = "INSERT INTO event_table (event_name, 
                                 event_date, 
                                 event_time_start, 
                                 event_time_end, 
                                 cusact_id, 
                                 theme, 
                                 reserve_date_time, 
                                 package_id) 
                        VALUES ('$e_name', 
                                '$d_event', 
                                '$t_event', 
                                '$e_t_event', 
                                '$c_id',
                                '$theme', 
                                '$date', 
                                '$id');";

  mysqli_query($conn, $sql) or die(mysqli_error($conn));

答案 1 :(得分:0)

检查mysqli_real_escape_string的{​​{3}},我发现如果连接未打开,输出将为空字符串,因此请尝试检查连接是否已打开:

if (mysqli_connect_errno()) {
    printf("%s\n", mysqli_connect_error());
    exit();
}