当前位置: 首页 > 知识库问答 >
问题:

PHP7 MySQL“expiry_date”PDO数据库安装默认值无效[重复]

唐默
2023-03-14
There seems to be an error. Please try again.
PDOException: SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'expiry_date' in /var/www//install/index.php:31 Stack trace: #0 /var/www//install/index.php(31): 
PDOStatement->execute(Array) #1 /var/www//install/index.php(152): try_query(Array) #2 {main}
PDOException: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint in /var/www//install/index.php:31 Stack trace: #0 /var/www//install/index.php(31): PDOStatement->execute(Array) #1 /var/www//install/index.php(152): try_query(Array) #2 {main}
PDOException: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint in /var/www//install/index.php:31 Stack trace: #0 /var/www//install/index.php(31): PDOStatement->execute(Array) #1 /var/www//install/index.php(152): try_query(Array) #2 {main}
PDOException: SQLSTATE[HY000]: General error: 1215 Cannot add foreign key constraint in /var/www//install/index.php:31 Stack trace: #0 /var/www//install/index.php(31): PDOStatement->execute(Array) #1 /var/www//install/index.php(152): try_query(Array) #2 {main}
PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '1' for key 'PRIMARY' in /var/www//install/index.php:31 Stack trace: #0 /var/www//install/index.php(31): PDOStatement->execute(Array) #1 /var/www//install/index.php(152): try_query(Array) #2 {main}

我是不是漏掉了什么设置?它在Ubuntu14 php5系统上运行良好。

以下是一些有助于评估的表插入:

'0' => array(
                'table' => TABLE_FILES,
                'query' => 'CREATE TABLE IF NOT EXISTS `'.TABLE_FILES.'` (
                              `id` int(11) NOT NULL AUTO_INCREMENT,
                              `url` text NOT NULL,
                              `filename` text NOT NULL,
                              `description` text NOT NULL,
                              `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP(),
                              `uploader` varchar('.MAX_USER_CHARS.') NOT NULL,
                              `expires` INT(1) NOT NULL default \'0\',
                              `expiry_date` TIMESTAMP NOT NULL,
                              `public_allow` INT(1) NOT NULL default \'0\',
                              `public_token` varchar(32) NULL,
                              PRIMARY KEY (`id`)
                            ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
                            ',
                'params' => array(),
    ),

共有1个答案

马阳曦
2023-03-14

对于expiry_date列,not NULL约束没有任何默认值会导致默认值设置为0,这在MySQL中不被接受为时间戳的默认值。

expiry_date字段使用默认时间戳。

您可以查看下面关于这个问题的讨论。

 类似资料:
  • 安装成功后系统会提示面板访问地址与AMH、MySQL默认账号密码。 这是官方进行极速安装的时候显示的一段话。 为什么软件的默认数据库选择MYSQL。其实可以和宝塔那样。软件本身的数据库是独立的。 这样更有利于系统的安装。MYSQL数据库后期可以根据自己的需求进行安装。

  • 问题内容: 我遇到了一个无法解决的SQL愚蠢问题。 错误: 有人可以帮我吗? 问题答案: 仅在字段上可接受。字段必须保留为空的默认值,或者根本不保留任何默认值- 默认值必须为常量值,而不是表达式的结果。 相关文档:http : //dev.mysql.com/doc/refman/5.0/en/data-type- defaults.html 您可以通过在表上设置插入后触发器以在任何新记录上填充“

  • 问题内容: 这个问题已经在这里有了答案 : mysql错误1364字段没有默认值 (15个答案) 3年前关闭。 最近,我将MySQL数据库移到了新服务器上,这给了我以前在MySQL上遇到的一些问题。我的表列设置为“默认=>无”,并且我的表已根据数据类型生成默认值。但是现在当我尝试插入表中时,出现以下错误消息:“#1364-字段’column_name’没有默认值”,然后没有任何内容插入表中。 我该

  • 我正在学习一个在线课程,包括创建一个Wordpress插件。当我尝试按照说明(并使用提供的代码排除我这边的任何错误)创建自定义表时,出现了一个问题。这是原始代码的一部分: MySQL(意大利语)的本地设置可能会产生任何问题吗?MySQL版本为::5.7.21-0Ubuntu0.16.04.1-(Ubuntu)。PHP版本7.0.22。Wordpress版本:4.9.2。谢谢你。

  • 我想从dto对象中设置值,并使用save jpa repository方法将其插入数据库。如果属性无效(null或大小过长),我可以使用jpa插入默认值吗? dto对象: 我使用验证器来控制值:

  • 我正在使用DBEAVER3.8.0,并试图建立到本地PostgreSQL数据库的一般连接。 若要查看所有数据库,请选中“显示非默认数据库”复选框。当我试图访问我的一个数据库的架构时,我得到了错误