我需要分解此数组并将值插入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
答案 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";
}
}
更新
要使用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']);
之前不需要的值。