【问题标题】:Add multiple values to table mysql向表mysql添加多个值
【发布时间】:2013-05-05 05:26:03
【问题描述】:

我正在创建一个 MySQL 数据库,它正在存储游戏的统计数据。现在我只是设置它,我需要添加 80 名球员,每个球员都有一个列,每个球员都有进球、助攻等......

这是我的代码:

INSERT INTO `finalproject`.`Bremners` (
   `stud_id`, 
   `stud_name`, 
   `stud_goal`, 
   `stud_assist`,
   `stud_attendance`, 
   `stud_goalie`
) VALUES (
   '1', 
   'test', 
   '0', 
   '0', 
   '0', 
   '0'
);

但这只会插入一个名为“test”的玩家。有谁知道如何修改此代码,以便添加 80 个玩家,每个玩家都有不同的名字? (我用 php 做网站,所以如果可以通过 php 来完成)

谢谢

【问题讨论】:

标签: php mysql database loops while-loop


【解决方案1】:

好吧,您可以从创建一个 PHP 玩家数组开始,然后遍历该数组并使用 mysql 将每个玩家添加到数据库中。

$players = array("John", "Jack", "Josh"..."80th Player");

foreach($players as $player):
$player = mysql_real_escape_string($player);
mysql_query("INSERT INTO `finalproject`.`Bremners` (`stud_id`, `stud_name`, `stud_goal`, `stud_assist`,
`stud_attendance`, `stud_goalie`) VALUES ('1', $player, '0', '0', '0', '0')")
endforeach;

我不会使用 mysql_.. 插入数据库,只是为了给你我使用它的想法。

【讨论】:

  • 嗯,执行 80 个查询而不是 1 个?对我来说似乎是一种浪费。
  • 如果您想重复使用该游戏,真正的浪费是将 80 个玩家作为 SQL 输入,而不是有一个界面,您可以根据需要输入每个玩家,或者玩家注册。跨度>
  • @Adder 我认为他插入这些行是出于测试目的。他可能还没有创建任何界面。但是,如果只有 80 行使用 PHP 循环并发送 80 个查询并不是一个坏主意,因为这个解决方案很简单,并且只需要完成(我想)一次。
【解决方案2】:

试试这个

INSERT INTO `finalproject`.`Bremners` (
     `stud_id`, 
     `stud_name`, 
     `stud_goal`, 
     `stud_assist`,
     `stud_attendance`, 
     `stud_goalie`
)VALUES 
('1', 'test', '0', '0', '0', '0'),
('2', 'test1', '0', '0', '0', '0'),
('3', 'test2', '0', '0', '0', '0'),
....
('80', 'test79', '0', '0', '0', '0');

【讨论】:

  • 如果所有stud_* 列都有默认值,那么, '0', '0', '0', '0' 可能就不需要了。
  • 一些可能会让你的生活更美好的想法使用 stud_id 的自动递增列,这样你就可以让数据库为你管理该 id,使用 insert.. values(null, ..) db 将增加 id。
  • @Voitcus 我同意这会简单得多:)
  • @mconlin 是的,您的建议也是一个有效的观点,您可以通过 Voitcus 获得类似 INSERT INTO table (name) VALUES ('test'),('test1')... 的建议
猜你喜欢
  • 2016-08-25
  • 1970-01-01
  • 2013-01-21
  • 2015-01-08
  • 1970-01-01
  • 2023-03-22
  • 2013-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多