0

このエラーがどこから発生したのかを見つけるのに苦労しています:

エラー: SQLSTATE[42S22]: 列が見つかりません: 1054 列 'dummy@.books.id' が 'where 句' に不明です

SQL クエリ

UPDATE 
    `dummy@`.`books` 
SET 
    `isbn` = '1234532', 
    `title` = 'cakephp blog tutorial', 
    `id` = 5, 
    `description` = 'gh', 
    `author_name` = 'andrew' 
WHERE 
    `dummy@.books.id` = '5'

レコードを編集すると、次のエラーが発生しました

コントローラー機能

function edit ($id = NULL){
         if (!$id && empty($this->request->data)) {
          $this->Session->setFlash('Invalid Book', true);
          $this->redirect(array('action'=>'index'));
       }  

        else {    
            $this->Book->create();

         $save = $this->Book->save($this->request->data);
            if($save){ 

               $this->Session->setFlash('book detail edit successfully');
               $this->redirect(array('action'=>'index',$id));
              } 
       }
           if(empty($this->request->data)){               
           $this->request->data = $this->Book->read(NULL,$id);
        }           
   }

そしてctpファイルを表示

<?php  echo $this->Form->create('Book');?>
<fieldset>
    <legend> Edit New Book </legend>
    <?php

    echo $this->Form->input('isbn');
    echo $this->Form->input('title');
    echo $this->Form->hidden('id'); 
    echo $this->Form->input('description');
    echo $this->Form->input('author_name');
    ?>
</fieldset>
<?php echo $this->Form->end('Edit Book');?>
4

1 に答える 1

1

データベース構成を確認してください

文字列dummy@は、接続するデータベースの名前であると想定されています。

database.phpファイルが有効なデータベースに接続するように構成されていることを確認します (疑わしい場合は、デフォルトの database.php ファイルを参照してください)。次のようになります。

class DATABASE_CONFIG {

public $default = array(
    'datasource' => 'Database/Mysql',
    'persistent' => false,
    'host' => 'localhost',
    'login' => 'user',
    'password' => 'password',
    'database' => 'database_name', // <- "dummy@" ?
    'prefix' => '',
    //'encoding' => 'utf8',
);
于 2013-08-22T10:54:40.957 に答える