0

你好,给你们/gals的快速问题

我有一个 javascript 对象,在控制台中显示如下。

Object { 10= "a@a.com", 18="b@b.com", 20="c@c.com"}

通过 AJAX 将此对象传递给后端 CI 控制器,我使用 CI 创建了以下函数。

function NewEMail(){
 //this is the array coming from ajax
 $test = $this -> input -> post('sendValue');
 print_r($test);

 if(is_array($test)){
  foreach($test as $t){
  //Insert the values in to the db from here.
  }
 }
}

php 对 print_r 的响应如下

Array([10] => a@a.com [18] => b@b.com [20] => c@c.com)  

我想将每个元素和值推送到新行,如下所示。

EMAIL_TABLE

| id | cus_id | email   |  
| 1  | 10     | a@a.com |  
| 2  | 18     | b@b.com |   
| 3  | 20     | c@c.com | 

'id'是自动递增的,如何从数组中读取和存储'cus_id''email' 。

任何帮助我解决这个问题的帮助或指示将不胜感激!

感谢您的阅读,问候。

4

2 回答 2

0

将 id 设置为表中的 auto_increment 主键列。

create table email (
    id int unsigned primary key auto_increment,
    cus_id int unsigned,
    email varchar(50)
);

insert into email (cus_id, email) values ('$cusid', '$email');

id 然后会自行处理,您所要做的就是在插入时不理会它。

循环执行此操作的 PHP 代码:

foreach ($test as $cusid => $email) {
    $querystring = "insert into users (cus_id, email) values ('$cusid', '$email')";
    myqsli_query($querystring);
}
于 2013-02-20T19:23:50.683 回答
0

你可以试试这个:

$test = $this->input->post('sendValue');

if( is_array($test) ){
    $data = array();
    foreach ($test as $cusid => $email) {
        $data[] = array('cus_id' => $cusid, 'email' => $email);
    }

    $this->db->insert_batch('tablename', data);
}
于 2013-02-21T07:41:14.280 回答