以下代码将起作用,但是假定所有嵌套数组的长度都相同,换句话说,每个嵌套数组都包含第一个嵌套数组中定义的所有属性的值。
$array = array( array('name', 'age', 'gender' ), array('Ian', 24, 'male'), array('Janice', 21, 'female'));$fields = implode(', ', array_shift($array));$values = array();foreach ($array as $rowValues) { foreach ($rowValues as $key => $rowValue) { $rowValues[$key] = mysql_real_escape_string($rowValues[$key]); } $values[] = "(" . implode(', ', $rowValues) . ")";}$query = "INSERT INTO table_name ($fields) VALUES (" . implode (', ', $values) . ")";
只要所有其他嵌套数组的长度相同,该解决方案就可以与第一个嵌套数组中定义的任意数量的属性一起使用。对于上面的数组,输出将是:
INSERT INTO table_name (name, age, gender) VALUES (Ian, 24, male), (Janice, 21, female)
有关演示,请参见http://prepad.org/7SG7lHaH,但请注意,由于它们不允许使用该功能,因此删除了对prepad.org上的mysql_real_escape_string()的调用。在您自己的代码中,您应该使用它。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)