【问题标题】:Built one MySQL INSERT using two different arrays using for each使用两个不同的数组构建一个 MySQL INSERT
【发布时间】:2018-01-13 21:37:24
【问题描述】:

我希望有人能够帮助我解决我已经面临几个小时的问题。我正在尝试从两个数组构建一个 MySQL INSERT。一个数组 ($bms) 包含 6 个值,第二个包含 3 个值(我想在 INSERT 查询中使用具有 3 个值的数组,我现在正在使用占位符 group)。 (组数组)的每个值需要使用 2 次。我希望你能理解我下面的例子:


2 个数组——总是分别包含 6 个和 3 个值:

数组 ([0] => 8 [1] => 3 [2] => 4 [3] => 121 [4] => 13 [5] => 154 ) // $bms

数组 ( [0] => 266 [1] => 267 [2] => 268 ) //



带有 foreach 循环的查询:

$query = "INSERT INTO userlinks (linkpool_id, group, userid) VALUES ";
foreach($bms as $bm) {
    $query .= "('".$bm."', group, '".$userid."'),";
}
echo $query;

目前的输出:

INSERT INTO userlinks (linkpool_id, group, userid) VALUES ('8', group, '19'),('3', group, '19'),('4', group, '19'),('121', group, '19'),('13', group, '19'),('154', group, '19')



我正在努力实现的目标

INSERT INTO userlinks (linkpool_id, group, userid) VALUES ('8', '266', '19'),('3', '266', '19'),('4', '267', '19'),('121', '267', '19'),('13', '268', '19'),('154', '268', '19')




非常感谢您的帮助和投入的时间——很棒的社区!

【问题讨论】:

  • 3x2 = 6,我没看到问题?! @RajdeepPaul
  • $bms 的两个第一个值需要与$group 的第一个值相关联,$bms 的第三个和第四个值与$group 的第二个等...所以每个group 的值将被使用两次。
  • @Treast 啊,现在很清楚了。也许我需要更多的咖啡。 :-)

标签: php mysql arrays foreach insert


【解决方案1】:

您可以改用for 循环:

$query = "INSERT INTO userlinks (linkpool_id, group, userid) VALUES ";

for($i = 0; $i < count($bms); $i++) {
  $j = (int) $i/2; //[0,1] will return 0, [2,3] return 1 etc... 
  $query .= "('".$bms[$i]."', '".$groups[$j]."', '".$userid."'),";
}

rtrim($query, ",");
echo $query;

编辑:感谢@RajdeepPaul 提供更精确的信息。

【讨论】:

  • group是MySQL的保留字,用反引号封装表名和列名。此外,从最终查询中删除尾随 ,,执行 echo rtrim($query, ",");
  • @Treast,好的,我已经尝试了您上面建议的代码,但输出看起来像这样-> INSERT INTO userlinks (linkpool_id, group, userid) VALUES ('8', '', '19'),('3', '', '19'),('4', '', '19'),('121', '', '19'),('13', '', '19'),('154', '', '19') 如何将组数组的值分配给它?没听懂,抱歉。
  • 我的错误,对不起!是的,您在上面提供的代码工作得很好!非常感谢!
猜你喜欢
  • 2017-05-10
  • 1970-01-01
  • 2019-01-25
  • 2023-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-08
  • 1970-01-01
相关资源
最近更新 更多