2013-02-21 37 views
-3

我的数组是这样的:PDO与插入钥匙多行和值阵列

Array 
(
    [name] => Array 
     (
      [0] => Matrix 
      [1] => Ryan 
     ) 

    [surname] => Array 
     (
      [0] => Relaoded 
      [1] => Lose 
     ) 

) 

我的问题是,关键和值不匹配计数。

如何将这个数组像精确的结构插入到带有PDO的mysql?

在MySQL表

---------------------------------- 
    | id  name  surname | 
    | 1  Matrix Relaoded | 
    | 2  Ryan  Lose  | 
    ---------------------------------- 
当然

我需要溶液编程

我花了几个小时,去trought这真棒的论坛,但我不能找到解决办法:(

感谢;)

+2

'“键和值不匹配计数。”' - 你什么意思? – 2013-02-21 20:32:25

+1

作为第一步 - 忘记您拥有PDO和数据库 - 只需以类似的方式“回应”信息即可。你能做到吗? – zerkms 2013-02-21 20:34:03

+0

'INSERT INTO mytable VALUES(?,?,?);' then: 'for i = 0;我 2013-02-21 20:34:03

回答

0

这里的SQL语句

INSERT INTO mytable (`id`,`name`,`surname`) VALUES(?,?,?); 

那么下面的伪代码:

for ($i = 0; $i < count($['name']); $i++) { 
    $db->execute($i+1, $a['name'][$i], $a['surname'][$i]); 
} 
+0

我将不得不使用'$ key => $ value'并使用'$ key'来获取姓氏。这似乎不太合逻辑,因为你正在循环两个数组。如果姓更长,编写'$ i 2013-02-21 20:41:03

1

@Zerkms是对的,你只需要学习如何处理这个数组。
最简单的办法是

foreach($array['name'] as $key => $name) { 
    $surname = $array['surname'][$key]; 
    // now you can use the pair 
    var_dump($name,$surname); 
} 
+0

THX,我还有一个问题,如何插入MySQL中的这个解决方案与PDO全光照只有一个查询 – beater 2013-02-21 21:17:16

+0

现在我的代码如下所示:http://codepad.org/E5fnuSCq 它只有在2 equialent插入最后的foreach值行 – beater 2013-02-21 21:43:09

+0

这里是工作代码:http://codepad.org/jvXoHD5m thx all for help;) – beater 2013-02-21 22:45:38