gpt4 book ai didi

sql - mysql 警告

转载 作者:行者123 更新时间:2023-11-29 01:25:40 24 4
gpt4 key购买 nike

我有下表:

 CREATE TABLE `events` (
`evt_id` int(11) NOT NULL AUTO_INCREMENT,
`evt_name` varchar(50) NOT NULL,
`evt_description` varchar(100) DEFAULT NULL,
`evt_startdate` date NOT NULL,
`evt_enddate` date DEFAULT NULL,
`evt_starttime` time DEFAULT NULL,
`evt_endtime` time DEFAULT NULL,
`evt_amtpersons` int(11) DEFAULT NULL,
`sts_id` int(11) NOT NULL,
`adr_id` int(11) DEFAULT NULL,
`evt_amtPersonsSubs` int(11) DEFAULT NULL,
`evt_photo` varchar(50) DEFAULT NULL,
`sys-mut-dt` timestamp NULL DEFAULT NULL,
`sys-mut-user` varchar(20) DEFAULT NULL,
`sys-mut-id` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`evt_id`),
KEY `sts_id` (`sts_id`),
KEY `adr_id` (`adr_id`),
CONSTRAINT `sts_id` FOREIGN KEY (`sts_id`) REFERENCES `statusses` (`sts_id`) O
N DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1

现在我有两个问题:

这是我的查询:

INSERT INTO `events`(`evt_name` , `evt_description` , `evt_startdate` , `evt_enddate` , `evt_starttime` , `evt_endtime` , `evt_amtpersons` , `sts_id` , `adr_id` , `evt_amtPersonsSubs` , `evt_photo` , `sys-mut-user` , `sys-mut-id`) VALUES ('asf' , 'asf' , '2009-04-02' , '2009-04-22' , '00:00:00' , '00:00:00' , '3' , '1' , '' , '' , '' , 'test' , '1')
  1. 当我通过我的 php 程序执行此查询时,我没有收到任何错误。但是当我直接在 mysql 数据库上在 shell 中执行查询时,我收到两个警告。如何让 PHP 在出现警告时提醒我,因为如果出现警告,mysql 不会执行插入操作。

  2. 关于警告:

|警告| 1366 | 1366整数值不正确:第 1 行“adr_id”列的“”|警告| 1366 | 1366整数值不正确:第 1 行的“evt_amtPersonsSubs”列的“”

我怎样才能摆脱这些警告。试图做出一些改变,但到目前为止还没有成功。

最佳答案

您正在插入一个空字符串。您应该删除“”并在该字段中输入一个数字

正如您所说,插入时该列不必指定值。这一事实由表创建时该列的“DEFAULT NULL”指示。然而,这一事实意味着,如果您在执行 INSERT 时没有在列列表中指定列名称(因此您也不会指定相应的值),那么无论如何都可以插入元组,并且对于该列值,默认情况下您将自动获得 NULL。

但是,在查询中您指定要插入该列值,并且您所说的列值是“”(空字符串)。这当然是无效的,因为该列接受整数(或 NULL,因为您还没有声明该列 NOT NULL),而空字符串是空字符串,而不是整数。

SQL 服务器很慷慨,无论如何都会接受空字符串(可能会将其转换为零),但会向您报告警告。如果您为服务器设置严格模式(我强烈建议您这样做),您将收到错误并且插入将失败。

请注意,如果您遵循我设置严格模式的建议,那么这是服务器范围内的,涉及您的所有数据库和所有表(至少对于一年前发布的 mysql 而言)。如果您的软件编写得非常糟糕,需要一个宽容的服务器,那么您就无法使用它。

关于sql - mysql 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/790826/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com