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


Inserting array and non-array values in bindValue param

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

这是我的密码。

$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();  

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

将此语句放入循环中

$c =    $st->execute();