如何爆炸数组并插入MySQL

时间:2019-03-16 01:22:20

标签: php mysql

我需要分解此数组并将值插入MySQL

 $ar =  Array ( [0] => Array ( [status] => 1 [message] => Successfully Validated! [id] => 17 [licence] => 9ETD-6X57-AWSJ [period] => 6 [user] => 0 ) [1] => 1 ) 

到目前为止我尝试过的事情:

//print_r($ar);
    $categories = '';
$cats = explode(",", $ar);
foreach($cats as $cat) {
    $cat = trim($cat);
    $categories .= "<category>" . $cat . "</category>\n";
}

我的表结构(列定义),

id | licence | period | no_users
---|---------|--------|----------
   |         |        |

但是我有这个错误:

  

警告:explode()期望参数2为字符串,数组形式为   C:\ Users \ HP \ Desktop \ phpdesktop \ www \ setup.php在第118行

     

警告:为中的foreach()提供了无效的参数   第119行的C:\ Users \ HP \ Desktop \ phpdesktop \ www \ setup.php

1 个答案:

答案 0 :(得分:1)

If Parent IsNot Nothing Then Parent.Font = ColumnHeadersDefaultCellStyle.Font End If 用于根据字符串创建数组。您已经有了一个数组,因此需要遍历其值。尚不清楚是要从数组中输出键还是要输出值,但是此代码将同时输出这两者,您可以决定使用哪个:

explode

输出:

foreach ($ar as $values) {
    if (!is_array($values)) continue;
    foreach ($values as $k => $v) {
        echo "$k: $v\n";
    }
}

Demo on 3v4l.org

更新

要使用PDO插入表中,假设连接名为status: 1 message: Successfully Validated! id: 17 licence: 9ETD-6X57-AWSJ period: 6 user: 0 ,则可以执行以下操作。首先更改$conn循环以将值插入数组,然后准备一条语句并使用数据数组进行插入:

foreach

我不确定PDO是否在乎数组中的额外参数,因为我从未尝试过,但是您可能需要使用

foreach ($ar as $values) {
    if (!is_array($values)) continue;
    foreach ($values as $k => $v) {
        $data[":$k"] = $v;
    }
}
$stmt = $conn->prepare("INSERT INTO mytable (id, licence, period, no_users)
                        VALUES (:id, :licence, :period, :no_users)");
$stmt->execute($data);

删除unset($data[':status'], $data[':message']); 之前不需要的值。