PHP插入表中而不创建新的数据行

时间:2017-02-27 18:48:05

标签: php mysql arrays database insert

我是PHP的新手,我正在尝试将嵌套数组中的数据插入到数据库中。我注意到只有最后一个键:值被放入(似乎几乎所有其他内容都被覆盖)。如何获得每个数据的新行,以便将所有内容都放入?

 $tmpArray = array(array("one" => abc, "two" => def), array("one" => ghi, "two" => jkl));

 //  Scan through outer loop
 foreach ($tmpArray as $innerArray) {
    //  Scan through inner loop
    foreach ($innerArray as $key => $value) {
        if ($key === 'one') {
             $sql = "INSERT INTO test2 (alpha, beta) VALUES ('$key', '$value')"; 
        }
    }
 }

对于简单,我所要做的就是将“one”和“abc”放入alpha和beta。然后让表的另一行输入“one”和“ghi”。但是当我运行代码时,我得到的只是“一个”和“ghi”。当我发出一个echo语句时,所有正确的东西都被打印出来了。只是不明白为什么他们没有输入我的表格。

我做错了什么?谢谢!

1 个答案:

答案 0 :(得分:2)

$sql = "INSERT INTO test2 (alpha, beta) VALUES ('$key', '$value')"; 

每次调用变量$sql时,该行都会覆盖变量$sql = ''; // Scan through outer loop foreach ($tmpArray as $innerArray) { // Scan through inner loop foreach ($innerArray as $key => $value) { if ($key === 'one') { $sql .= "INSERT INTO test2 (alpha, beta) VALUES ('$key', '$value'); "; } } } 的内容。您需要将字符串连接在一起:

.dropdown:hover .dropdown-content {
    display: block;
    background: blue;
}

更好的是,正如评论中所建议的那样,只是直接执行查询而不是将其存储在变量中。然后,您不必将字符串连接在一起,也不必在单个MSQLI调用中启用多个语句。