1

我正在编写一个脚本,它可以帮助我从网站上获取有关新书的信息。我有 8 条信息(标题、作者、编辑...)要插入,每页上要扫描的书不超过十本。

最后一步是查询,但我在理解多维数组时遇到了一些问题。

我的准备语法:

$req = $db->prepare('INSERT INTO listing(id, Ref, Nom, Auteur, Editeur, Prix, EAN, Small_desc, Dispo) VALUES(\'\', :Ref, :Nom, :Auteur, :Editeur, :Prix, :EAN, :Small_desc, :Dispo)');

和查询......我已经用第一行进行了测试。那行得通!但我希望插入所有结果。

$req->execute(array('Ref'=>$sortie4[1][0], 'Nom'=>$sortie[1][0], 'Auteur'=>$sortie2[1][0], 'Editeur'=>$sortie3[1][0], 'Prix'=>$sortie6[1][0], 'EAN'=>$sortie5[1][0], 'Small_desc'=>$sortie7[1][0], 'Dispo'=>$sortie8[1][0]));

我找到了一些关于多维数组的示例,但我不明白如何使用它们。

谢谢你的帮助

4

2 回答 2

0

您可以阅读THIS以了解有关数组的更多信息。

于 2013-07-05T14:37:51.340 回答
0

可以这样做:

$req = $db->prepare('INSERT INTO listing(id, Ref, Nom, Auteur, Editeur, Prix, EAN, Small_desc, Dispo) VALUES(\'\', :Ref, :Nom, :Auteur, :Editeur, :Prix, :EAN, :Small_desc, :Dispo)');

foreach($sortie4[1] as $key => $value)
{
    $req->execute(array(':Ref'=>$sortie4[1][$key], ':Nom'=>$sortie[1][$key], ':Auteur'=>$sortie2[1][$key], ':Editeur'=>$sortie3[1][$key], ':Prix'=>$sortie6[1][$key], ':EAN'=>$sortie5[1][$key], ':Small_desc'=>$sortie7[1][$key], ':Dispo'=>$sortie8[1][$key]));
}

变化是:

  • 添加了 foreach 以便语句准备一次,然后execute()循环插入每一行。通过捕获密钥,您可以访问其他数组中的相关元素。
  • :您的参数名称在执行调用中没有前缀,我添加了这些。

旁注:您的数组不是最理想的结构。您有几个多维数组,每列一个。相反,您应该只需要一个,例如:

$arr = array(
    array('Ref' => '...', 'id' => '...', 'Nom' => '...'),
    array('Ref' => '...', 'id' => '...', 'Nom' => '...'),
    array('Ref' => '...', 'id' => '...', 'Nom' => '...'),
    array('Ref' => '...', 'id' => '...', 'Nom' => '...')
);
于 2013-07-05T16:21:16.470 回答