WordPress插件激活插入多行

时间:2014-09-05 09:06:34

标签: php mysql wordpress

我试图在插件激活时将多个raw插入数据库,我设法只插入一个raw 我可以弄清楚如何添加多个原始数据,例如10 raw。

以下是仅插入一个原始代码的工作代码:

function my_func() {
global $wpdb;
$_IL_TABLE_SETTINGS = $wpdb->prefix . "table";

$wpdb->insert(
    $_IL_TABLE_SETTINGS,
    array( 'id' => '1', 'options' => 'something', 'values' => 'something' ));
}

我试过这样但是不适用于第二个原始版本:

function my_func() {
  global $wpdb;
  $_IL_TABLE_SETTINGS = $wpdb->prefix . "table";

  $wpdb->insert(
    $_IL_TABLE_SETTINGS,
    array( 'id' => '1', 'options' => 'something', 'values' => 'something' ),
    array( 'id' => '2', 'options' => 'something', 'values' => 'something' )
  );
}

我如何将这些值添加到您的代码中:

$id = array('1', '2', '3');
$op = array('first', 'second', 'thaird');
$data = array('value1', 'value2', 'value3');

我将不胜感激。

4 个答案:

答案 0 :(得分:1)

例如,如果您要添加10条记录,则可以尝试for循环:

for($i=0;$i<10;$i++)
  {
    $wpdb->insert(
    $_IL_TABLE_SETTINGS,
    array( 'id' => '$i', 'options' => 'something', 'values' => 'something' ),
  }

当然,您需要相应地添加动态数据。

答案 1 :(得分:1)

        Here is the code which will work.

        $id = array('1', '2', '3');
        $op = array('first', 'second', 'thaird');
        $data = array('value1', 'value2', 'value3');    


        for($i=0;$i<count($id);$i++)
        {
            $wpdb->insert($_IL_TABLE_SETTINGS,array("id"=>$id[$i],"option"=>$op[$i],"values"=>$data[$i]));           
        }

        Please let me know if it didnt work for you.

答案 2 :(得分:0)

你可以在其中添加一个循环并将$ wpdb-&gt;插入到该循环中。

答案 3 :(得分:0)

    If value is stored in an array

    $arr=array();//containing the values you want to insert 
    $arr[0]=array("id"=>idvalue,"key"=>"value");
    for($i=0;$i<count($arr);$i++)
    {
        $wpdb->insert($_IL_TABLE_SETTINGS,$arr[$i]));           
    }


    if you want to store imaginari values 

    for($i=0;$i<count($arr);$i++)
    {
        $wpdb->insert($_IL_TABLE_SETTINGS,array( 'id' => $i, 'options' => 'something', 'values' => 'something' ));          
    }

    Hope you can relate your code with the above one, if no please let me know.