将Array的2D值插入SQL

时间:2011-01-10 11:08:09

标签: sql arrays loops insert multidimensional-array

现在,我已经循环了一个表格,最终给了我一个2D数组。

数组0D
用户阵列1D
用户字段2D

  

数组([1] =>数组([fname] => qweqwe [lname] => qwewqe [email] => qwewqe [age] => wewqe)[2] =>数组( [fname] => 123123 [lname] => 123123 [email] => 23123 [年龄] => 23123))

这是我在我的田地里输入垃圾时得到的一个例子。 为了检查我是否可以获得每个表单的值,我使用了这个:

  

$ i = $ _POST ['number'];
  $ corporate = $ _POST ['corporate'];
      $ x = 1;
      的print_r($企业);
      而($ x <= $ i)
          {
          echo“名字第一名”。$ corporate [$ x] [“fname”]。“。”;
  }

使用这个,我会获得第一个用户的名字,然后是第二个用户,依此类推。这证明我可以从我的表格中获取2D值。

我现在要做的是将这些值插入到我的表中。请记住,我的1D包含每个用户的值。 2D是值本身。

  

mysql_query(“INSERT INTO学生('fname','lname','email','age')VALUES

我不知道在那之后要放什么。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您需要添加一组要插入的数据值。这些将采用的形式(“Robert”,“Brown”,“Robert.Brown @ uni.com”,“34”)(“Robert”,“Smith”,“Robert.Smith @ uni.com”,“33 “)

您使用的是哪个版本的PHP?

对于php5.3你可以尝试:

$values = array();
foreach($corporate as $line){
$values[] = "('".implode("','",array_map(function($x){ return addslashes($x); })) . "')";
}
$query = "INSERT INTO students ('fname','lname','email', 'age') VALUES";
$query .= implode($values);
$record = mysql_query($query);

否则,请尝试:

$values = array();
foreach($corporate as $line){

foreach($line as $i=>$item) $line[$i] = addslashes($item);
$values[] = "('".implode("','",$line) . "')";
}
$query = "INSERT INTO students ('fname','lname','email', 'age') VALUES";
$query .= implode($values);
$record = mysql_query($query);

要解决问题的第二部分,您需要编辑表定义并删除位于每个字段上的“NOT NULL”定义。你在服务器上有php我的管理员吗?您可以通过编辑表和字段来完成它,否则您可以使用ALTER TABLE运行sql。如果您想了解更多相关信息,请与我们联系。

答案 1 :(得分:1)

好吧,使用你的查询,深入了解它的含义,我终于明白了。

这是我使用的代码:

  foreach($corporate as $line)
        {
        $values[] = "('".implode("','",$line) . "')";
        echo "<br />";
        print_r($values);
        $a = implode(",", $values);
        echo $a;
        }

    $query = "INSERT into students (fname, lname,email,age) VALUES $a";
    $sql = mysql_query($query); 

这在我的数据库上工作正常,就像魅力一样 但是,当我在我的朋友DB或在线数据库上尝试这个时,我收到一个错误,要求我给每个字段一个值。由于某种原因,它不能输入NULL值。

我想弄明白为什么,但我的问题的要点已经解决了 如果您知道导致我的错误的原因,请随时发表评论。感谢。