如何使用多行循环插入MySQL数据库?

时间:2010-01-09 00:17:03

标签: mysql

我有需要添加到数据库中的数据。数据如下所示:

Jim Jones    2009-01-01     Red
Susan Hoo    2009-01-04     Red
...

我正在为此编写一个过程但不知道如何循环它以便它插入所有行。有没有人可以告诉我的教程或其他东西让我入门?

由于

这是一个插入实时数据的过程,数据不在文件中。

3 个答案:

答案 0 :(得分:1)

这实际上取决于您拥有数据的形式。如果您将其作为文本或CSV格式,则可以使用LOAD DATA INFILE。但我不认为如果你把它全部放在一行就行了(很难从你的例子中说出来)。

否则,如果您需要以编程方式进行,如果您告诉我们您使用的是哪种语言,那将会有很大帮助。

修改 - 格式化效果更好。以下是LOAD DATA INFILEhttp://dev.mysql.com/doc/refman/5.1/en/load-data.html

的参考页面

编辑2 - 为了回应您的评论,用户插入新记录的界面是什么?

编辑3 - 好吧,如果你有一个GUI,他们将通过它插入一个记录,那么你不需要有一个for循环,因为大概一次只插入一个记录。忽略当前批处理的可能性,只要用户通过GUI指示他们想要提交他们的记录,就应该执行INSERT

答案 1 :(得分:0)

你听起来像个初学者,所以这是一个简单的答案。在开发工具中,按F1或从菜单中选择帮助,然后搜索:“for”,“while”,“do”,“until”或“loop”。这些是常见的循环关键字。

答案 2 :(得分:0)

您可能希望了解多维数组 - 假设您的输入存储在类似于此的多维数组中:

$myform = array(

 0 => array(

 "name" => "Jim Jones",

 "date" => "2009-01-01",

 "colour" => "red"

 ),

 1 => array(

 "name" => "Susan Hoo",

 "date" => "2009-01-04",

 "colour" => "red"

 )
然后你可以做这样的事情:

for($x=0;$x<(sizeof($data_array));$x++) {

mysql_query("INSERT INTO your_db_table (

name,

date,

colour

) VALUES (

'$myform[$x][name]',

'$myform[$x][date]',

'$myform[$x][colour]'

)"

)

}

..请小心处理!虽然我在各种应用程序中使用类似的东西,但上面的编码没有经过测试,可能有一个或另一个bug。希望它无论如何都有帮助......:]