php - CakePHP - 错误 : SQLSTATE[HY000]: General error: 1364 Field 'title'

标签 php mysql cakephp

我的 add.ctp 表单返回“错误:SQLSTATE[HY000]:一般错误:1364 字段‘标题’没有默认值”。而且我不知道为什么,一切似乎都写对了。我输入了标题,但它没有将其保存到数据库中。

AlbumsController.php

class AlbumsController extends AppController {        
    public function add() {            
        if($this->request->is('post')) {                
            $this->Album->create();
            $this->Album->save('$this->request->data');                
        }            
    }        
}

添加.ctp

<?php
echo $this->Form->create('Album', array('type' => 'file'));
echo "<br>";
echo $this->Form->input('created', array('label' => '', 'separator' => ' ', 'timeFormat' => '24'));
echo "<br>";
echo $this->Form->input('title', array('label' => 'Naslov albuma<br>'));
echo "<br><br>";
echo $this->Form->end('Create album');
?>

MySQL structure table

最佳答案

你需要改变这一行:

$this->Album->save('$this->request->data');

并删除单引号,你不需要它:

$this->Album->save($this->request->data);

但是-并且作为旁注-,要从您的 mysql 中为您的标题字段设置默认 NULL 值,您可以按如下方式更新您的表结构以使标题字段接受空值:

ALTER TABLE `tableName` CHANGE `title` `title` varchar(200) NULL DEFAULT NULL;

关于php - CakePHP - 错误 : SQLSTATE[HY000]: General error: 1364 Field 'title' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43513632/

相关文章:

php - MYSQL表变大

php - 如何使用php curl获取youtube视频直接链接文件的大小信息?

php - 如何在 SQL 中获取超过限制 5 的多个相同输出的 TOP 5 值

php - 为什么带有 PCRE_UTF8 的 PHP preg_match_all 在 CLI 上和通过 Apache/mod_php 给出不同的结果?

php - 使用ajax每秒访问数据库

mysql - 如何计算一列中分隔值之间重复值的数量并将该值存储在另一个表中

php - mysql_insert_id($result) 不返回 ID

cakephp - 如何从 Controller 将变量发送到 CakePHP 3.x 中的元素,并在不同 View 中使用元素时保留变量?

mysql - 如何在cakephp中以时间间隔从数据库获取前一天的数据?

php - Composer 忽略安装程序路径配置