【问题标题】:Looking for code customisation [closed]寻找代码定制[关闭]
【发布时间】:2012-11-01 05:47:49
【问题描述】:

我使用以下 php for 循环在数据库中插入数组值。我需要更正我的代码。我想在 for 循环之外查询。请帮助我更正我的代码。

<?php
             /*********************/
             $data = $_REQUEST['columns_one'];
             $store_data = explode(",",$data);
            foreach($store_data as $key =>$value)
            {
            //echo $value;
            $query = "insert into fb_savedforms(form_id,form_structure) values ('','".$value."')";
            $result = mysql_query($query);
            } 
            /**************************************/
        ?>

【问题讨论】:

  • 您需要更好地表达您的问题。究竟发生了什么或没有发生什么?

标签: php jquery html css jquery-ui


【解决方案1】:

试试这样的:

$data = $_REQUEST['columns_one'];
$store_data = explode(",",$data);
//setup the insert query
$query = "INSERT INTO fb_savedforms(form_id,form_structure) VALUES ";
$values = array(); //store all the new rows
foreach($store_data as $key =>$value){
  $values[] = "('','".$value."')";
}
$query .=  implode(',', $values) . ';';
$result = mysql_query($query);

大免责声明:此代码未经测试,但应说明您可以有多个值集。

【讨论】:

  • 我已经测试了代码。它的工作...谢谢@Tim
【解决方案2】:

使用批量插入在循环中构建您的查询,但只执行一次。

来自How to do a batch insert in MySQL

使用 VALUES 语法的 INSERT 语句可以插入多行。为此,请包含多个列值列表,每个列表都包含在括号中并用逗号分隔。

例子:

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);

【讨论】:

    【解决方案3】:
    $data = $_REQUEST['columns_one'];
                 $store_data = explode(",",$data);
                $query = '';
                foreach($store_data as $key =>$value)
                {
                //echo $value;
                $query .= "insert into fb_savedforms(form_id,form_structure) values ('','".$value."'); ";
    
                } 
    $result = mysql_query($query);
    

    【讨论】:

    • 你最终会得到一串这样的插入语句。这正是存在批量插入的原因。
    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 2012-08-06
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 2012-10-30
    • 1970-01-01
    • 2010-11-04
    相关资源
    最近更新 更多