【问题标题】:Inserts into MySQL table going onto separate rows插入 MySQL 表进入单独的行
【发布时间】:2016-09-25 03:06:31
【问题描述】:

我正在使用 Laravel Spark 并将值插入到 MySQL 表中。我正在执行一系列插入,例如

DB::table('nameOfTable')->insert(['id' =>  $user['id']]);
DB::table('nameOfTable')->insert(['name' =>  $user['name']]);

值被正确插入到表中,但每个值都被放置在自己的行中。一定有一个简单的原因,但我没有找到任何运气进行搜索。提前致谢。

【问题讨论】:

  • 是的,您正在执行两个单独的插入,因此您将插入两行......这就是插入的工作方式......但是,您可以使用多个值进行单个插入:DB::table('nameOfTable')->insert(['id' => $user['id'], 'name' => $user['name']]);
  • 查看Laravel docs 可能会有所帮助
  • @Mark Ba​​ker 下次请发帖作为答案,干得好

标签: php mysql laravel laravel-spark


【解决方案1】:

您问题中的每一行代码都旨在单独插入一行。为了在同一行中插入多个值(AKA 在同一行中插入不同的列值),您所要做的就是在传递给insert 函数的数组中包含更多值:

DB::table('nameOfTable')->insert(['id' =>  $user['id'],'name' =>  $user['name']]);

上一行代码应该可以正常工作。我个人更喜欢这样编写代码,因为它对我们凡人来说更清晰 xD:

DB::table('nameOfTable')->insert(array(
    'id' =>  $user['id'],
    'name' =>  $user['name']
));

【讨论】:

  • 感谢您的回复。问题是我在插入之前为每个插入执行一个 if 语句;我想我可以在第一个插入中嵌套这些 if 语句,但我可能会尝试找到解决方法。谢谢!
  • @HannahHunt 没问题,汉娜 :)。哦,如果这个答案对你有用,请接受它(绿色复选标记),以便未来的读者和用户知道它对你有用。
猜你喜欢
  • 2016-06-16
  • 2011-10-17
  • 1970-01-01
  • 2014-12-02
  • 1970-01-01
  • 2010-10-26
  • 2013-12-15
  • 2014-04-05
  • 1970-01-01
相关资源
最近更新 更多