Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 将Now()插入MYSQL_Html_Mysql_Jsp - Fatal编程技术网

Html 将Now()插入MYSQL

Html 将Now()插入MYSQL,html,mysql,jsp,Html,Mysql,Jsp,我试图将当前日期和时间从.jsp插入MYSQL,但我的代码无法工作。为什么?我没有将时间设置为变量,因为我假设jsp将在记录加载到DB时获取当前/日期。我希望我已经解释够了 String insert1 = ("insert into ticket (t_date,t_equipment, t_descript,emp_id,tech_id)" + " values( now(),'"+a+"', '"+b+"', '"+c+"', '"+j+"')"); 另外,对于外键emp_id,我是否需

我试图将当前日期和时间从.jsp插入MYSQL,但我的代码无法工作。为什么?我没有将时间设置为变量,因为我假设jsp将在记录加载到DB时获取当前/日期。我希望我已经解释够了

String insert1 = ("insert into ticket (t_date,t_equipment, t_descript,emp_id,tech_id)"
+ " values( now(),'"+a+"', '"+b+"', '"+c+"', '"+j+"')");
另外,对于外键emp_id,我是否需要在insert语句中指定表名employee.emp_id,还是保持原样,因为我已经在数据库中将emp_id创建为FK in TIKET表

表代码:

CREATE TABLE IF NOT EXISTS `helpdesk`.`Ticket` (
  `T_ID` INT () NOT NULL AUTO_INCREMENT,
  `t_date` DATETIME NULL,
  `t_equipment` VARCHAR(45) NULL,
  `t_descript` VARCHAR(300) NULL,
  PRIMARY KEY (`T_ID`),
  CONSTRAINT `emp_id`
    FOREIGN KEY ()
    REFERENCES `helpdesk`.`employee` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION,
  CONSTRAINT `tech_id`
    FOREIGN KEY ()
    REFERENCES `helpdesk`.`technician` ()
    ON DELETE NO ACTION
    ON UPDATE NO ACTION)
ENGINE = InnoDB;
这是我得到的输出:

执行以下SQL语句:

insert into ticket (t_date,t_equipment, t_descript,emp_id,tech_id)
values(now(),'laptop', 'Can't access the network', '77777', '12344')
insert into employee (emp_id, emp_fname,emp_lname,emp_email, emp_phone,emp_cellphone,emp_dept)
values ('77777','Cassie','Somers','csomers@biz.org','2487775555','2487775551','null') 
哎哟,抛出了一个SQLException

.jsp代码:


根据错误消息和查询,t_date的数据库设置是否为DATETIME,但返回与时间戳匹配的格式。因此,您可以将CREATE TABLE更改为如下所示,以便t_date的默认值始终为TIMESTAMP default CURRENT_TIMESTAMP:

然后,您的查询就可以完全像这样删除:

String insert1 = ("insert into ticket (t_date,t_equipment, t_descript,emp_id,tech_id)"
+ " values('','"+a+"', '"+b+"', '"+c+"', '"+j+"')");
但也就是说,还有另一个主要问题:您显示的插入的格式如下:

insert into ticket (t_date,t_equipment, t_descript,emp_id,tech_id)
values(now(),'laptop', 'Can't access the network', '77777', '12344')
insert into employee (emp_id, emp_fname,emp_lname,emp_email, emp_phone,emp_cellphone,emp_dept)
values ('77777','Cassie','Somers','csomers@biz.org','2487775555','2487775551','null')

但是单词不能有一个引号,它关闭了字符串值。因此,在处理这些值之前,您应该在这些值上使用与PHP相当的Java。很抱歉,我不能提供Java方面的建议,但我更熟悉PHP,因此可以根据您提出的问题提供最好的建议。

它做什么而不是工作?你收到了什么错误?t_date在您的表中是否是一个正确的MySQL日期/日期时间数据类型?您不需要指定FK表名,因为您没有向该表中插入任何内容—您正在向ticketies中插入,它在表中设置为日期数据类型。我发布了上面的表代码。您确定您正在执行此代码吗?并且,在您所做的上下文中使用NOW的早期版本不是有效和正确的。打印insert1的内容,以确保它看起来像您期望的那样。是的,我已经在上面添加了输出,现在检查了数据库,表中实际上没有任何内容。我不知道发生了什么。除非我喝醉了,否则你不能插入FK。你需要单独的语句来插入被引用的表中。不能是从我输入的@jakegould表单中得到的。我在insert语句中没有使用CANNOT,它是作为字符串变量从表单传递回jsp的,它将作为varchar插入数据库。@smray7请阅读我的全部答案。它解决了我能发现的两个主要问题。如果不能正确转义,则不能使用单引号。数据截断:不正确的datetime值:对于第1行的“t_date”列,我只是将其改回现在,现在没有引发异常。。
String insert1 = ("insert into ticket (t_date,t_equipment, t_descript,emp_id,tech_id)"
+ " values('','"+a+"', '"+b+"', '"+c+"', '"+j+"')");
insert into ticket (t_date,t_equipment, t_descript,emp_id,tech_id)
values(now(),'laptop', 'Can't access the network', '77777', '12344')
insert into employee (emp_id, emp_fname,emp_lname,emp_email, emp_phone,emp_cellphone,emp_dept)
values ('77777','Cassie','Somers','csomers@biz.org','2487775555','2487775551','null')