Php 向数据库提交表单

Php 向数据库提交表单,php,database,submit,Php,Database,Submit,我已经为我的支持票网站准备好了一切,除了我的newticket表单没有将值发布到数据库。以下是我所拥有的: <?php ob_start(); session_start(); include 'dbconnect.php'; if( !isset($_SESSION['user']) ) { header("Location: index.php"); exit; $error = false; }

我已经为我的支持票网站准备好了一切,除了我的newticket表单没有将值发布到数据库。以下是我所拥有的:

<?php
    ob_start();
    session_start();
    include 'dbconnect.php';

    if( !isset($_SESSION['user']) ) {
        header("Location: index.php");
        exit;
    $error = false;
    }
    if ( isset($_POST['btn-cancel']) ) {
        header("Location: home.php");
        exit;
    }

    if ( isset($_POST['btn-signup']) ) {

        // get form results
        $text = $_POST['description'];
        $text = strip_tags($text);

        $userid = $_POST['user'];
        $problem = $_POST['problem'];
        $room = $_POST['room'];
        $status = 1;
        $datetime = date('Y-m-d G:i:s');
        // description validation
        if (empty($text)) {
            $error = true;
            $textError = "Please describe the problem.";
        }   else if (strlen($text) > 200) {
            $error = true;
            $textError = "Description must be less than 200 characters in length.";
        }

        // dropdown validation
        if ($problem < 1){
            $error = true;
            $problemError = "Please choose a category and problem.";
        }   else if ($room < 1) {
            $error = true;
            $roomError = "Please choose a building and a room number.";

        // if there's no error, continue to signup
        if( !$error ) {

            $query = "INSERT INTO job (User_UserID,Problem_ProblemID,Status_StatusID,Room_RoomID,Description,Date_Time) VALUES({$userid},{$problem},{$status},{$room},'{$text}',{$dateTime})";
            echo '$query';
            $res = mysqli_query($conn,$query); 

            if ($res) {
                $errTyp = "success";
                $errMSG = "Successfully submited ticket";
                unset($text);
                unset($problem);
                unset($room);
                unset($datetime);
            } else {
                $errTyp = "danger";
                $errMSG = "Something went wrong, try again later."; 
            }   

        }

        }
    }
?>
首先
您的
$dateTime
将类似于
2016-12-09 11:43:42
,因此SQL语句将是:

INSERT INTO job (...) VALUES(..., 'This is my text', 2016-12-09 11:43:42)

这是一个语法错误。请注意,您的
$text
字段周围有引号,将其作为单个元素保留,但您的日期没有。使用
'{$dateTime}'
可以解决这个问题,虽然不能保证没有其他问题…

hmm,也许我也应该开始在这里发布我的支持票,以便让我的工作更轻松,Lol你能缩小问题范围吗?出了什么问题;您看到了哪些错误,以及导致问题的代码行。(顺便说一句,我删除了紧急事件,因为这会分散注意力,可能会适得其反。)缩小你的问题范围,这个问题只是一整段代码,检查错误消息并打开它们。在开始将值上传到服务器时,一个简单的
var\u dump
可以帮助我解决问题,我没有收到错误。问题很简单,按Submit按钮不会将数据保存到数据库中。。而且,
{$dateTime}
中似乎有一个空格字符,因此您的SQL可能失败了。(注意)。好的,我修正了“datetime”,但是对于else if语句,我需要做什么?请使用,而不是填鸭式地喂你,你会看到你的代码格式不正确。我知道你的来历,但我确实得了癌症,我的成绩取决于此,所以谢谢,但不谢谢。另外,刚刚通过PHP格式化程序运行了我的代码,没有任何更改。请向你们的大学申请一个扩展,因为你们似乎有无法按时提交的正当理由,但只需一分钟即可将代码复制并粘贴到该站点,然后查看
$roomError
之后的代码,发现您的
}
放错了位置。我很理解被忽略的愚蠢的打字错误(我自己经常做),但我已经教过你找到它们所需要的工具。我本可以告诉你该怎么做,但我太迟钝了,所以你可以多学一个技巧来添加到你的调试工具箱中。我的教授不会给我一个扩展。这就是我恐慌的全部原因。我更正了}的位置,代码仍然不起作用。
if ($problem < 1){
    $error = true;
    $problemError = "Please choose a category and problem.";
}   else if ($room < 1) {
    $error = true;
    $roomError = "Please choose a building and a room number.";
$datetime = date('Y-m-d G:i:s');

//...

$query = "INSERT INTO job (User_UserID,Problem_ProblemID,Status_StatusID,Room_RoomID,Description,Date_Time) 
    VALUES({$userid},{$problem},{$status},{$room},'{$text}',{$dateTime})";
                                                            ^^^^^^^^^^^
INSERT INTO job (...) VALUES(..., 'This is my text', 2016-12-09 11:43:42)