2016-04-09 20 views
0

私はコントローラ内でこのクエリを持っています。これは、データベース内の単純な挿入データです。cakephpのクエリが機能しません

$this->User->query('INSERT INTO users(CF,phone,username,email,city,firstname,lastname,active,group_id) VALUES ('$CF','$phone','$username','$email','$city','$name','$name','$active','$group_id')'); 

そして、これがモデルである:

<?php 
App::uses('AppModel', 'Model'); 
/** 
* User Model 
* 
* @property Group $Group 
* @property User $ParentUser 
* @property User $ChildUser 
* @property Facility $Facility 
* @property ServiceCategory $ServiceCategory 
*/ 
class User extends AppModel { 

/** 
* Display field 
* 
* @var string 
*/ 
    public $displayField = 'name'; 


    //The Associations below have been created with all possible keys, those that are not needed can be removed 

/** 
* belongsTo associations 
* 
* @var array 
*/ 


public $virtualFields = array(
    // 'name' => 'CONCAT(User.lastname, " ", User.firstname)' 
    'name' => 'CONCAT(lastname, " ", firstname)' 
); 


    public $belongsTo = array(
     'Group' => array(
      'className' => 'Group', 
      'foreignKey' => 'group_id', 
      'conditions' => '', 
      'fields' => '', 
      'order' => '' 
     ), 'Gender' 
    ); 

    public $hasMany = array('Bid'); 

/** 
* hasAndBelongsToMany associations 
* 
* @var array 
*/ 
    public $hasAndBelongsToMany = array(
     'Facility' => array(
      'className' => 'Facility', 
      'joinTable' => 'facilities_users', 
      'foreignKey' => 'user_id', 
      'associationForeignKey' => 'facility_id', 
      'unique' => 'keepExisting', 
      'conditions' => '', 
      'fields' => '', 
      'order' => '', 
      'limit' => '', 
      'offset' => '', 
      'finderQuery' => '', 
     ), 
     'ServiceCategory' => array(
      'className' => 'ServiceCategory', 
      'joinTable' => 'service_categories_users', 
      'foreignKey' => 'user_id', 
      'associationForeignKey' => 'service_category_id', 
      'unique' => 'keepExisting', 
      'conditions' => '', 
      'fields' => '', 
      'order' => '', 
      'limit' => '', 
      'offset' => '', 
      'finderQuery' => '', 
     ) 
    ); 

} 

しかし、答えは空白のページです。 cakephpのバージョンは2です。誰も助けることができますか?あなたが私が間違っている場所を私に説明することができれば、私は同じ間違いを繰り返さないでしょう。

答えて

1

デバッグレベルが0である可能性が最も高い問題です(つまり、実際のエラーの内容は表示されません)。 config/core.phpでデバッグを2に変更してから、再度ファイルを実行してください。

.phpファイル(コントローラー/モデル/コンポーネント/ ..など)に閉じる?>タグの後ろに空白があると、空白のページが表示されることがあります。不要な閉じる?>タグを取り除いてください(PHPファイル内のphpタグを閉じる必要はありません)。

1

壮大なORMを持つフレームワークを使用しているときに、なぜそうした挿入をしますか?あなたのソリューションはあなたのアプリケーションをSQLインジェクションに開きます。

正しい方法を実行します。

$data = array(
    'CF' => $CF, 
    'phone' => $phone, 
    'username' => $username, 
    'email' => $email, 
    'city' => $city, 
    'name' => $name, 
    'active' => $active, 
    'group_id' => $group_id 
); 

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

http://book.cakephp.org/2.0/en/models/saving-your-data.html

関連する問題