在php中的数据库中插入数组值

时间:2011-12-05 12:54:31

标签: php mysql

我正在使用oops在php中的数据库中插入数组值。我在表单页面上调用了一个类。

<?php
$pid=$_POST['pid'];
$ecode=$_POST['ecode'];  {these are my form value)
$rcode=$_POST['rcode'];
$dk=$_POST['dk'];
$qd=$_POST['qd'];
$tp=$_POST['tp'];
$vd=$_POST['vd'];
$valArr=array($pid,$ecode,$rcode,$dk,$qd,$tp,$vd);

if(isset($_POST['form_submit'])){
    $requester=new performance();
    $requester->addRow($valArr);
}
?>

和类性能代码是

class performance extends DataAccess
{
    {
        $this->obj= new DataAccess;

    }
    function addRow($valArr)
    {
        foreach ($valArr as $key=>$value )

            $sql=   INSERT INTO employee_performance (id, empcode,review_emp_id,
                    subject_matter,quality_of_delivery, team_player,value_added)
                    VALUES $value
    }
    $sql=mysql_query($sql);
}
}

它无法在database.how中插入所有记录。我这样做了吗?

我想知道如何使用foreach在mysql数据库中插入此数据。

3 个答案:

答案 0 :(得分:0)

您的代码错误比我能算的错误多。但是,这是一个条纹下降和丑陋/快速(希望工作)编辑:

<?php
$pid = $_POST['pid'];
$ecode = $_POST['ecode'];
$rcode = $_POST['rcode'];
$dk = $_POST['dk'];
$qd = $_POST['qd'];
$tp = $_POST['tp'];
$vd = $_POST['vd'];

if(isset($_POST['form_submit']))
{
    $query = "INSERT INTO employee_performance (id, empcode,review_emp_id,subject_matter,quality_of_delivery,team_player,value_added) VALUES ('$pid', '$ecode', '$rcode', '$dk', '$qd', '$tp', '$vd')";
    $sql = mysql_query($query);
}
?>

为什么要像这样的数组一样插入它?它没有任何意义吗?而$sql既是查询又是查询本身的执行。

答案 1 :(得分:0)

亲爱的你使用的是简单的单维数组,不需要使用foreach循环,因为它会一次选择一个值,并且只会在数据库中插入一个值,然后就不能在同一个值中插入值行。 就这样做......

if(isset($_POST['form_submit'])){
         $requester=new performance();
      $requester->addRow($_POST); // $_POST  is itself an associative array
   }


class performance extends DataAccess
     {
     {
     $this->obj= new DataAccess;

        }
     function addRow($valArr)
{
          extract($valArr);

           $sql=   INSERT INTO employee_performance (id, empcode,review_emp_id,                     subject_matter,quality_of_delivery, team_player,value_added)
      VALUES('$pid' , '$ecode'...'$vd');
     $sql=mysql_query($sql);
 }
 }

答案 2 :(得分:-1)

像这样写

function addRow($valArr)
{
$values = implode(',',array_values($valArr));
$sql=  "INSERT INTO employee_performance (id, empcode, review_emp_id, subject_matter, quality_of_delivery, team_player,value_added) VALUES($values)";
$sql=mysql_query($sql);
}