gpt4 book ai didi

php - CDbCommand 执行 SQL 语句失败 : SQLSTATE[HY000]: General error: 1364

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

我正在关注 Yii Blog tutorial ,并在进行评论部分时遇到此错误。

CDbCommand failed to execute the SQL statement: SQLSTATE[HY000]: General error: 1364 Field 'post_id' doesn't have a default value. The SQL statement executed was: INSERT INTO `tbl_comment` (`status`, `content`, `author`, `email`, `url`, `create_time`) VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5) 

同样的错误首先出现在状态上,但我在数据库中为它设置了默认值。但是这次是post_id,我不知道怎么算出来。帖子 ID 是来自另一个表的 FK。 Here是整个数据库的设计。

谢谢!

最佳答案

看起来您的“post_id”属性(可能是您的主键)未设置为“自动递增”或在您的数据库中设置为“not null”。看看下面的 ORM。将其与您的进行比较并修复您的数据库端错误。并且不要忘记通过升级您的模型。 GII!

enter image description here

-- -----------------------------------------------------
-- Table `mydb`.`tbl_comment`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`tbl_comment` ;

CREATE TABLE IF NOT EXISTS `mydb`.`tbl_comment` (
`post_id` INT NOT NULL,
`status` VARCHAR(45) NULL,
`content` TEXT NULL COMMENT ' ',
`author` VARCHAR(255) NULL,
`email` VARCHAR(255) NULL,
`url` VARCHAR(511) NULL,
`create_time` DATETIME NULL,
PRIMARY KEY (`post_id`))
ENGINE = InnoDB;

否则,如果“post_id”不是您的主键并且未设置为“自动递增”,您可以尝试使用此方法修复它:

解决方案 1) 在 php 中保存/更新之前设置“post_id”,例如:

$model = new Tbl_comment; //hope this is your Yii model name...
$model->post_id = 123

if(!$model->save()) {
var_dump($model->errors);
}

解决方案 2) 在数据库 ORM 中为属性“post_id”添加一个默认值。 (因为我不知道你的关系和 ORM 对不对。)

enter image description here

-----------------------------------------
-- Table `mydb`.`tbl_comment`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `mydb`.`tbl_comment` ;

CREATE TABLE IF NOT EXISTS `mydb`.`tbl_comment` (
`post_id` INT NULL DEFAULT someDefault,
`status` VARCHAR(45) NULL,
`content` TEXT NULL COMMENT ' ',
`author` VARCHAR(255) NULL,
`email` VARCHAR(255) NULL,
`url` VARCHAR(511) NULL,
`create_time` DATETIME NULL)
ENGINE = InnoDB;

表格详细信息:

enter image description here

关于php - CDbCommand 执行 SQL 语句失败 : SQLSTATE[HY000]: General error: 1364,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25603162/

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