循环中使用spArgs求助

#1 SunPSP

先说下需求
根据需要动态获取一张表的字段并接收表单传过来的值插入数据表

第一步(完成):获取一张表结构之后得到一个字段组成的数组
$sql="DESC {$this->prefix}{$this->storage}";
  $desc=spClass('spSQL')->findSql($sql);
  $fields=implode(',',spArray_ByKey($desc,Field));
  $args=spArray_ByKey($desc,Field);
  dump($args);
dump出来结果如下:
Array
(
    [0] => uuid
    [1] => title
    [2] => image
    [3] => director
    [4] => writer
    [5] => cast
    [6] => description
    [7] => status
)

第二步(完成),处理用implode处理$fields得到SQL中的字段值
$fields=implode(',',spArray_ByKey($desc,Field));
dump结果为
uuid,title,image,director,writer,cast,description,status

第三步(求助),用foreach来循环$args这个数组来获取表单的传值并插入数据库
$arg=array();
  foreach($args as $key=>$arg){
   $arg[$key]=$this->spArgs($key);
  }
  $sql="INSERT INTO {$this->prefix}{$this->storage} ($fields) VALUES ($arg)";
这一步报错,$arg获取不到值,直接显示最后一个字段。。。。
1.jpg
不知道问题出在什么地方,求指导

2013-04-01 18:56:08

#2 jake

挺乱的。

下面这个是会出问题的,$arg这个变量重复了。

$arg=array();
  foreach($args as $key=>$arg){
   $arg[$key]=$this->spArgs($key);
  }

你可以改成
$value = array();
foreach($args as $key => $v){
$value[$key]=$this->spArgs($v); // 这里应该用数组的值来获取spArgs(根据你上面dump出来的东西),而不是根据key,因为上面dump出来的key是数字。
}
dump($value);

2013-04-01 22:18:16

#3 SunPSP

我擦擦,帖子不让编辑不知道怎么结贴哇{:soso_e135:}

2013-04-04 18:40:27