function do_insert($matches) {   //定义函数并且接受$form 数组
    print_r($matches);
    $sql = "insert into comp_files ( comp_name,comp_people,comp_tel,comp_addr) ";
$sql .="values('$matches[1][0]',";
$sql .="'$matches[2][0]',";
$sql .="'$matches[3][0]',";
$sql .="'$matches[4][0]');";
echo $sql;
$res = mysql_query($sql);
if(!$res) {
    die("数据库出错,请返回重试!");
}
print_r($matches);显示传值没有错误。$matches数组有数据,但是为什么写入的数据是空值呢 ??
输出的SQL语句为:
insert into comp_files ( comp_name,comp_people,comp_tel,comp_addr) values('Array[0]','Array[0]','Array[0]','Array[0]');

解决方案 »

  1.   

       function do_insert($matches) {   //定义函数并且接受$form 数组
            print_r($matches);
            $sql = "insert into comp_files ( comp_name,comp_people,comp_tel,comp_addr) ";
            $sql .="values('$matches[1][0]',";
            $sql .="'$matches[2][0]',";
            $sql .="'$matches[3][0]',";
            $sql .="'$matches[4][0]')";  // 这里 多了个分号
            echo $sql;
            $res = mysql_query($sql);
            if(!$res) {
                die("数据库出错,请返回重试!");
            }
      

  2.   

        function do_insert($matches) {   //定义函数并且接受$form 数组
            print_r($matches);
            $sql = "insert into comp_files ( comp_name,comp_people,comp_tel,comp_addr) ";
            $sql .="values('{$matches[1][0]}',";
            $sql .="'{$matches[2][0]}',";
            $sql .="'{$matches[3][0]}',";
            $sql .="'{$matches[4][0]}');";
            echo $sql;
            $res = mysql_query($sql);
            if(!$res) {
                die("数据库出错,请返回重试!");
            }
      

  3.   

    请把 print_r($matches);打印数据发出来,你的$matches中有数据,如果是一维的则应为$mathes[1],$matches[2]......,这样试试
      

  4.   

    可能 是 $matches[2][0] 不能用 直接放在 单引号下
     $sql = "insert into comp_files ( comp_name,comp_people,comp_tel,comp_addr) ";
            $sql .="values('".$matches[1][0]."',";
            $sql .="'".$matches[2][0]."',";
            $sql .="'".$matches[3][0]."',";
            $sql .="'".$matches[4][0]."')";
      

  5.   

    $sql .="'$matches[4][0]');";
    这句应该改成:
    $sql .="'$matches[4][0]')";
    我试过了 不过还是同样的结果。
    ……
      

  6.   

    插入的值为 Array[0] Array[0] Array[0] Array[0] 四个空值。
      

  7.   

    最好把这个加个  $matches[4][0]   addslashes   ; addslashes($matches[4][0]);
      

  8.   

    good  已解决  3楼正解 !!!