2017-04-07 26 views
0

請任何人都可以幫助我想根據請求的數字生成randoms字符串,並使用codeigniter的MVC模式將它們存儲到我的mysql數據庫中的表中。由於 控制器如何在codeigniter中將隨機數保存到mysql

public function generate() 
    { 
$this->news_model->generate_pin(); 
     $this->load->helper('string'); 
     echo random_string('alnum',15); 

模型

public function generate_pin(){ 

     $this->load->helper('string'); 
    $this->db->insert('pin', $number); 

,但沒有也發生我希望它同時運行10陣列

+1

你可以在「請求了數字」樣品流? 但是,我認爲這是一個簡單的'rand()'插入CI模型。 – Jhn

+0

是的,但你可以讓我通過如何插入蘭特,以及如何輸入所需的斑點數,生成它並插入數據庫 –

+0

斑點數?你的意思是這個長度? – Jhn

回答

0

您應該處理控制器的任何應用程序邏輯而不是在模型中。這個例子會插入10個隨機生成的字符串成一個數據庫表:

// THE CONTROLLER 
public function generate() 
{ 
    // LOAD THE STRING HELPER 
    $this->load->helper('string'); 

    $pins = array(); // HOLDER OF PIN CODES 
    $num_pins = 10; // THE NUMBER OF PIN CODES YOU WANT TO GENERATE 
    $len_pins = 15; // THE LENGTH OF THE PIN CODES YOU WANT TO GENERATE 

    // LOOP and generate the PIN codes 
    for($i = 0; $i < $num_pins; $i++) { 
     //REPLACE 'pin_fieldname' WITH WHATEVER FIELD NAME YOU HAVE IN YOUR TABLE 'pin' 
     $pins[] = array('pin_fieldname'=>random_string('alnum', $len_pins)); 
     //IF YOU WANT TO HAVE DIFFERENT LENGTHS OF YOUR PIN CODES 
     //YOU CAN PUT SOME LOGIC HERE TO CHANGE $len_pins 
     // $len_pins = {WHATEVER NUMBER};  
    } 

    // INSERT THE PINS INTO THE DATABASE 
    if($this->news_model->insert_pins($pins)){ 
     // SUCCESS INSERT... DO SOMETHING...  
    } else { 
     // FAILED INSERT.. DO SOMETHING... 
    } 
} 

和模型:

// THE MODEL 
public function insert_pins($pins){ 
    // LOAD THE DATABASE YOU WANT TO USE (IF NOT ALREADY DONE ELSEWHERE) 
    $this->db = $this->load->database(); //https://www.codeigniter.com/user_guide/database/connecting.html 
    return $this->db->insert_batch('pin', $pins); 
} 
+0

謝謝邁克爾,但我得到$ len_pins錯誤,併爲我的控制器中的()行我得到消息:語法錯誤,意外的'$ len_pins'(T_VARIABLE) –

+0

對不起,忘記把變量名稱後面';'...讓我知道它是否適用於您。已經更新了答案.. –

+0

Wao謝謝Micheal它的工作很完美 –

相關問題