我在cakephp的database.php中指定了我的数据库名称。但是,我似乎仍然无法在数据库的任何表中插入数据
我只是一个cakephp的新手,作为一个初学者,我经历了很多挣扎,我希望我没有夸大。当我发现我无法在数据库中插入任何数据时,我相信我在编写一个简单的注册应用程序方面是正确的。我的数据库名称为“cake”,这是默认配置:我在cakephp的database.php中指定了我的数据库名称。但是,我似乎仍然无法在数据库的任何表中插入数据,database,cakephp,insertion,Database,Cakephp,Insertion,我只是一个cakephp的新手,作为一个初学者,我经历了很多挣扎,我希望我没有夸大。当我发现我无法在数据库中插入任何数据时,我相信我在编写一个简单的注册应用程序方面是正确的。我的数据库名称为“cake”,这是默认配置: public $default = array{ 'datasource'=>'Database/Mysql', 'persistent'=>false, 'host'=>'localhost', 'login'=>'roo
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()是在保存模型数据之前执行的回调。很高兴我帮了。。。现在解决了吗?你可以发布你为解决问题所做的事情,并选择它作为正确答案。对不起,我错了。。这是一个打字错误谢谢贝法雷托:)