2011-01-19 11 views
1

私が作成した新しいテーブルをページ付けするサンプルコードCakephpでテーブルを動的に作成しましたか?

  mysql_query('SET AUTOCOMMIT=0;'); 
      mysql_query('START TRANSACTION;'); 
      $tableName = rand().'_table;' 
      $this->loadModel('Home'); // Model for homes_table 

      $sql = 'CREATE TABLE '.$tableName.'_table LIKE homes_table'; 
      mysql_query($sql); 
      // FEW INSERT STATEMENTS ON THE NEW TABLE $tableName // 
      /* 

      Here I want to paginate the new table 
      using $this->paginate(); 
      HOW? 

      */ 

     mysql_query('TRUNCATE table '.$tableName); 
     mysql_query('COMMIT;'); 

を見てください? ロジックは人がスクリプトを実行するたびに、新しいランダムな名前のついたテーブルが作成されます - >ページされます - >ドロップされます...または、モデルをcakePHPの動的に作成されたテーブルに割り当てるにはどうすればいいですか?

答えて

1

あなたのしていることのような音が悪いです。それ以外にも、CREATE TABLE、TRUNCATE、COMMITなどを呼び出すべきではありません。

テーブルを正しく作成および削除する方法については、sestスイートを参照して、トランザクションの実行方法に関するAPIを読んでください。 http://api13.cakephp.org/class/data-source#method-DataSourcebegin

また、テーブル名はこの自動を行うことができるケーキのために複数でなければならないので、あなたの例はうまくいかないでしょう。

あなたは

$Something = ClassRegistry::init(Inflector::classify($tableName . '_suffix')); 
を行うことによって、モデルのインスタンスを取得することができます
関連する問題