2012-04-01 1 views
0

Я просто новичок в cakephp и много борется как новичок, надеюсь, что я не преувеличиваю. Я считаю, что я был на правильном пути кодирования простого приложения регистрации, когда узнал, что я не могу вставить какие-либо данные в свою базу данных. Название моей базы данных «пирог», и это конфигурация по умолчанию:Я указал свое имя базы данных в database.php моего cakephp. Тем не менее, я по-прежнему не могу вставить данные в любую таблицу моей базы данных

public $default = array{ 
    'datasource'=>'Database/Mysql', 
    'persistent'=>false, 
    'host'=>'localhost', 
    'login'=>'root', 
    'password'=>'', 
    'database'=>'cake', 
    'schema'=>'', 
    'prefix'=>'' 
} 

Кстати, индекс страница моего локального хоста говорит, что я подключен к базе данных.

+0

главный вопрос: как вы вставляете данные в базу данных? нам нужно будет увидеть некоторый фактический код. – mark

+0

Привет, Марк, спасибо за ответ. Это то, что у меня в контроллере: PARAMS [ 'форма'])) { if ($ this-> User-> save ($ this-> params ['form'])) { $ this-> flash ('Ваша регистрационная информация была принята.', '/users/register '); } else { $ this-> flash («возникла проблема с вашей регистрацией», '/ users/register'); } } } } ?> – Charmie

+0

Имею ли я это правильно? он ничего не отображает, хотя я сказал ему это сделать. :(Это действительно разочаровывает. – Charmie

ответ

0

попробовать эти

  • Ваш DB конфиг говорит мне, что вы используете CakePHP 2 +, используйте

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

  • Установите уровень отладки выше 0 в Config/core.php, чтобы увидеть ошибки, если они существуют

  • Как правило, сохранение не работает из-за проверки. Вы можете перечислить недопустимые поля с помощью

debug($this->User->invalidFields()); // will only show when debug > 0

  • В журнале SQL в нижней части (только при отладке> 0) будет отображаться запрос вставки, попробуйте вставить этот запрос непосредственно в MySQL с вашего тузд перед конец. Посмотрите, есть ли ошибки по типам, ограничениям.
+0

привет Кишор! Спасибо за ответ. Я следовал вашим указаниям. Я также смог узнать, что он не входит ни в одно из операторов if-else. Но он получает данные из формы. – Charmie

+0

Вы упомянули, что я использую cakephp 2, будет ли какая-либо разница с предыдущими версиями? – Charmie

+0

Я имею в виду синтаксис? – Charmie

0

Никто, кажется, не упомянул об этом, но если ваш код конфигурации базы данных действительно то, что вы отправили, вы должны получить синтаксическую ошибку. Я имею в виду, это:

public $default = array{ 
    // ... 
} 

должно быть так:

public $default = array(
    // ... 
); 
+0

Хороший улов! Мы все пропустили этот. – mark

+0

извините, моя ошибка .. это была ошибка типографии ..>. <спасибо bfavaretto :) – Charmie

0

часть моего кода было на самом деле что-то вроде этого:

<?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 ". Работал как магия. :)

 Смежные вопросы

  • Нет связанных вопросов^_^