【问题标题】:How to save a random number to mysql in codeigniter如何在codeigniter中将随机数保存到mysql
【发布时间】:2017-04-07 14:03:39
【问题描述】:

请任何人帮助我想根据请求的数字生成随机字符串,并使用 codeigniter 的 MVC 模式将它们存储到我的 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 个数组

【问题讨论】:

  • 你能有一个关于“请求号码”的示例流程吗?但是,我认为这是在 CI 模型中简单插入 rand()
  • 是的,但你能告诉我如何插入兰特以及如何输入所需的斑点数,生成它并插入数据库
  • 斑点编号?你是说长度吗?
  • 没有我想要的长度,以便能够根据我想要的数量生成 10 个数字 5 并将其存储到数据库中
  • 请使用edit 链接向问题添加其他代码和/或详细信息,使其更加明显。然后删除多余的评论。

标签: javascript php codeigniter mysqli codeigniter-3


【解决方案1】:

您应该在控制器而不是模型中处理任何应用程序逻辑。此示例将 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);
} 

【讨论】:

  • 谢谢迈克尔,但我的控制器中的 $len_pins 和 for() 行出现错误,我收到消息:语法错误,意外 '$len_pins' (T_VARIABLE)
  • 抱歉,忘记在变量名后面加上;...如果它对你有用,请告诉我。已更新答案..
  • 嗨 Micheal K 感谢您的帮助。请我正在尝试做两件事,但似乎没有做对一件事情,但另一件却没有。 1. 我想验证注册页面上的 pin 是否存在于数据库中并且未被使用, 2. 如果是,那么我想更新 pin 表和状态。这是我在 php 中使用的,它有效但在 CI 上无效:$check = $mysqli->query("SELECT 'X' FROM pin WHERE pin='".$pin."' and status = '0'") ; if ($check->num_rows != 1) { $dupPin = 'true'; }
  • 我有这个用于 CI 模型:function pin_verification($pin) { $query = $this->db->get_where('pin',array('pin'=>$pin)) ;返回 $query->num_rows(); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-30
  • 2014-01-08
  • 1970-01-01
  • 2021-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多