我在cakephp的database.php中指定了我的数据库名称。但是,我似乎仍然无法在数据库的任何表中插入数据

我在cakephp的database.php中指定了我的数据库名称。但是,我似乎仍然无法在数据库的任何表中插入数据,database,cakephp,insertion,Database,Cakephp,Insertion,我只是一个cakephp的新手,作为一个初学者,我经历了很多挣扎,我希望我没有夸大。当我发现我无法在数据库中插入任何数据时,我相信我在编写一个简单的注册应用程序方面是正确的。我的数据库名称为“cake”,这是默认配置: public $default = array{ 'datasource'=>'Database/Mysql', 'persistent'=>false, 'host'=>'localhost', 'login'=>'roo

我只是一个cakephp的新手,作为一个初学者,我经历了很多挣扎,我希望我没有夸大。当我发现我无法在数据库中插入任何数据时,我相信我在编写一个简单的注册应用程序方面是正确的。我的数据库名称为“cake”,这是默认配置:

public $default = array{
    'datasource'=>'Database/Mysql',
    'persistent'=>false,
    'host'=>'localhost',
    'login'=>'root',
    'password'=>'',
    'database'=>'cake',
    'schema'=>'',
    'prefix'=>''
}
顺便说一下,我的本地主机的索引页显示我已连接到数据库。

试试这些

  • 您的数据库配置告诉我您正在使用cakephp 2+,请使用
$this->User->save($this->request->data)

  • 在Config/core.php中将调试级别设置为高于0,以查看是否存在错误

  • 通常,由于验证,保存不起作用。您可以按列出无效字段

debug($this->User->invalidFields());//仅在调试>0时显示

  • 底部的sql日志(仅当debug>0时)将显示插入查询,请尝试从mysql前端将该查询直接粘贴到mysql中。查看在类型、约束方面是否存在任何错误

似乎没有人提到过这一点,但如果您的数据库配置代码确实是您发布的代码,则应该会出现语法错误。我是说,这个:

public $default = array{
    // ...
}
应该是这样的:

public $default = array(
    // ...
);
  <?php class UsersController extends AppController { 
  function register() { 
      if (!empty($this->params['form'])) { 
        if ($this->User->save($this->params['form'])) { 
          $this->flash('Your registration information was accepted.', '/users/register');
      }

      else { 
          $this->flash('There was a problem with your registration', '/users/register'); } } } } ?> 

我的部分代码实际上是这样的:

public $default = array(
    // ...
);
  <?php class UsersController extends AppController { 
  function register() { 
      if (!empty($this->params['form'])) { 
        if ($this->User->save($this->params['form'])) { 
          $this->flash('Your registration information was accepted.', '/users/register');
      }

      else { 
          $this->flash('There was a problem with your registration', '/users/register'); } } } } ?> 


我所做的是将所有“$this->params['form']”更改为“$this->request->data”。像魔术一样工作。:)

主要的问题是:如何将数据插入数据库?我们需要看一些实际的代码。嗨,马克,谢谢你的回复。这就是我的控制器:我做得对吗?虽然我让它这样做,但它没有显示任何内容(这真是令人沮丧。不,你不是:)你应该阅读文档和教程,了解如何在2.0中正确使用表单-在使用表单帮助程序的情况下,永远不需要使用params[form]。hi Kishor!谢谢你的回复。我听从了你的指示。我还发现它没有输入if-else语句。但它确实从表单中获取数据。您提到我使用的是cakephp 2,与以前的版本有什么不同吗?我想我没有保存在表中。呼..知道吗..有时我真的认为我是世界上最不聪明的人…这应该在一小时前解决。谢谢你,基索。我收到两个数据请求,我只修改了一个。非常感谢@CharmaineKhaySorila:是的,以前版本的蛋糕差别很大。beforeSave()是在保存模型数据之前执行的回调。很高兴我帮了。。。现在解决了吗?你可以发布你为解决问题所做的事情,并选择它作为正确答案。对不起,我错了。。这是一个打字错误谢谢贝法雷托:)