Php 向数据库提交表单
我已经为我的支持票网站准备好了一切,除了我的newticket表单没有将值发布到数据库。以下是我所拥有的: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; }
<?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)