2011-09-03 170 views
-1

如何从多个数组插入数据到数据库PHP & MYSQL?如何从多个数组插入数据到数据库PHP?

我创建了一个表名是学生。有3个字段ID,姓名和性别。例如:数组([0] => 1,Jam,M [1] => 2,Janny,F [2] => 3,Vary)。

表学生有3个字段的ID,名称,性别。

如何向学生插入多个数组?

+0

您可能想要详细了解信誉:http://stackoverflow.com/faq#reputation –

回答

-1

你应该尝试做一个foreach循环,就像这样:

<?php 
$arr = Array ([0] => "1,Jam,M" [1] => "2,Janny,F" [2] => "3,Vary"); 
foreach($arr AS $item) 
{ 
    $parts = explode(",", $item); 
    $q = sprintf("INSERT INTO students (id, name, sex) VALUES ('%s', '%s', '%s')", $parts[0], $parts[1], $parts[2]); 
    // now execute the query into your database - like 
    mysql_query($q); 
} 

我注意到你的第三个元素不包含性别,所以你应该在情况下,它需要检查的有效性。

+0

你忘了逃脱 –

+0

噢,这只是它如何工作的一个例子!但是,是的,逃脱是必要的! – Krynble

+0

让我测试。 – user872148

1

认为它不是以数据库插入的方式,而是根据字符串
PHP是一种字符串操作语言。
所有你需要的是组成一些格式的字符串。所以,首先你必须写下一个所需字符串的例子,一个INSERT SQL查询。
然后使用PHP来组装使用一些PHP代码的这样的字符串。

+0

+1“PHP是一种字符串操作语言”。 – sdleihssirhc

0
$arr = Array ("1,Jam,M","2,Janny,F" ,"3,Vary,M"); 

$VALUES = array(); 
foreach ($arr as $data) 
    $VALUES[] = '('.implode(',',array_map("escape", explode(',', $data))).')'; 

$query = 'INSERT INTO STUDENTS_TABLE (`id`, `name`, `sex`) VALUES '.implode(',', $VALUES); 
mysql_query($query, $db_con); 

function escape($str) 
{ 
    //escaping here . For example 
    global $db_con; 
    return '"'.mysql_real_escape_string($str, $db_con).'"'; 
} 

这只是一个例子,但我建议你使用多插入。