我需要帮助爆炸这个数组并将这些值插入到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
---|---------|--------|----------
| | |但我有个错误:
警告: array ()期望参数2是字符串,在第118行的C:\Users\HP\Desktop\phpdesktop\www\setup.php中给出数组 警告:为第119行的C:\Users\HP\Desktop\phpdesktop\www\setup.php中的foreach()提供的参数无效
发布于 2019-03-16 01:29:15
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']);若要删除execute之前不需要的值,请执行以下操作。
https://stackoverflow.com/questions/55192582
复制相似问题