Php 如何分解数组并插入MySQL

Php 如何分解数组并插入MySQL,php,mysql,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); $categori

我需要帮助分解这个数组并将值插入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";
}
但我有一个错误:

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

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


explode
用于从字符串创建数组。您已经有了一个数组,因此需要循环它的值。不清楚是否要从数组中输出键或值,但此代码将同时输出这两个值,您可以决定使用哪一个:

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

status: 1
message: Successfully Validated!
id: 17 
licence: 9ETD-6X57-AWSJ 
period: 6 
user: 0

更新

要使用PDO将数据插入到表中,假设有一个名为
$conn
的连接,您可以这样做。首先更改
foreach
循环以将值插入数组,然后准备语句并使用数据数组插入:

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);
我不确定PDO是否关心数组中的额外参数,因为我从未尝试过,但您可能需要使用

unset($data[':status'], $data[':message']);

要在执行
之前删除不需要的值,请执行

,感谢您的时间和帮助。还有一件事,我如何将值存储在变量中并插入MySQL。我是php新手。@OlajumokeAdemilade您是否已经在MySQL中设置了表?如果是,它的结构是什么?您使用的是
mysqli
还是
PDO
?是的,我已经设置了一个表,PDO。@OlajumokeAdemilade它的结构(列定义)是什么?你能把这些信息添加到你的问题中吗(可能太大了,无法发表评论)我已经更新了我的问题。id是自动递增的。谢谢
unset($data[':status'], $data[':message']);