问:我在 PHP 中反序列化了一个对象,它给出了以下输出。我想从索引中提取 2 个 URL(或者有多少个)[file_url]并将它们存储到数据库中(通过执行一个foreach然后INSERT INTO通过 SQL?)。谁能告诉我实现这一目标的最佳方法?我以前从未使用过序列化/反序列化对象。
Array
(
[file] => Array
(
[success] => 1
[file_url] => Array
(
[0] => https://example.com/wp-content/uploads/2022/02/test1.png
[1] => https://example.com/wp-content/uploads/2022/02/test2.jpg
)
[file_path] => Array
(
[0] => /var/www/html/wp-content/uploads/2022/02/test1.png
[1] => /var/www/html/wp-content/uploads/2022/02/test2.jpg
)
)
)
答:您可以简单地使用索引。就像是
$value = $arr['file'][x][y]
这是一个多维数组。准确地说,它是一个 3 维数组。
例子:
$value = $arr['file']['success']
$value = $arr['file']['file_path'][0]
你也可以做
$value = $arr['file'][0]
其他维度数组的示例
$cars = array (
array("Volvo",22,18),
array("BMW",15,13),
);
用 SQL 吗?
当然,使用 PDO 和 bindParam 来实现清晰的安全性
$query = $con->prepare("UPDATE nearly_inactive SET :email = :emailaddr WHERE EmailSent = :id");
$query->bindParam(':email', $email, PDO::PARAM_STR);
$query->bindParam(':emailaddr', $emailaddr, PDO::PARAM_STR);
$query->bindParam(':id', $id, PDO::PARAM_STR);
$update->execute();