在bindValue参数中插入数组和非数组值

时间:2013-12-09 03:52:25

标签: php sql arrays binding pdo

我在sqlsrv中使用php pdo和MSSQL 2008.我在插入数组和非数组值时遇到问题。

这是我的代码。

$st = $this->db->prepare("USE guidance EXEC guidance.stud_precord_insert {$sql} "); 
    foreach($attributes as $key => &$value) { 
     $k =  ':'.$key; 

    if ($value === '') 
    { 
         $val = 'NULL'; 
         $par =  PDO::PARAM_NULL; 
         $st->bindValue($k, $val,$par); 
    } 
    elseif(is_array($value)) 
    { 
        foreach($value as $v) 
        { 
             if ($v === '') 
              { 
              $v = 'NULL'; 
             $par =  PDO::PARAM_NULL; 
             $st->bindValue($k, $v,$par); 
              } 
              else 
              { 
                $par =PDO::PARAM_STR; 
                $st->bindValue($k, $v,$par); 
               } 
        } 


      } 
    else{ 
    $val = $value; 
    $par =PDO::PARAM_STR; 
    echo "bindValue($k, $val,$par)<br/>"; 
     $st->bindValue($k, $val,$par); 
    } 

    } 

     $c =    $st->execute();  

问题是每次我保存我的数组时,我最终只插入数组的最后一个值。

1 个答案:

答案 0 :(得分:0)

将此语句放在循环

$c =    $st->execute();