2011-01-19 84 views
1

請看示例代碼Paginate在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')); 
得到模型的實例