Я указал имя своей базы данных в database.php моего cakephp.Тем не менее, я все еще не могу вставить данные в любую таблицу моей базы данных - PullRequest
0 голосов
/ 01 апреля 2012

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

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

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

Ответы [ 3 ]

0 голосов
/ 02 апреля 2012

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

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

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

public $default = array(
    // ...
);
0 голосов
/ 07 апреля 2012

часть моего кода была на самом деле примерно так:

  <?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». Работал как по волшебству. :)

0 голосов
/ 01 апреля 2012

попробуйте эти

  • Ваша конфигурация БД говорит мне, что вы используете 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 из вашего интерфейса MySQL.Посмотрите, есть ли ошибки по типам, ограничениям.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...