Php和Mysql插入中的多维数组

时间:2013-07-05 13:59:44

标签: php mysql multidimensional-array

我正在编写一个脚本,帮助我从网站上获取有关新书的信息。我有8个信息(标题,作者,编辑......)要插入,每页上有10本或更少的书要扫描。

最后一步是查询,但是我有一些问题需要理解multidimensionnal数组。

我的准备语法:

$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]));

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

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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' => '...')
);