php header函数对我不起作用

时间:2015-05-23 17:50:33

标签: php

这是我的代码一切正常,数据也插入数据库但在执行功能后我没有得到重定向。 这是函数的定义,最后是函数的调用

require_once('config.php');

function addRecord($post = array(),$table,$ommit) {
    global $conn;
    $sql = $sql2 = "";
    $ommitFields = explode(',',$ommit);
    $sql = 'INSERT INTO '.$table.' SET';
    foreach($post as $key=>$val){
        if(!in_array($key,$ommitFields) and $val !='') {
            $sql2 .= ", $key='$val'";
        }
    }
    $sql2 = trim($sql2, ',');
    $sql = $sql.$sql2;
    mysqli_query($conn,$sql);
}

if($_POST['axn'] == 'insert') {
    if(addRecord($_POST,'data_table','axn') == TRUE) {
        header('location:index.php');
    }
}

2 个答案:

答案 0 :(得分:1)

因为你的函数没有返回代码,如果工作错误。写在函数的末尾:

return mysqli_query($conn,$sql);
}

答案 1 :(得分:0)

也许你想要:

function addRecord($post = array(),$table,$ommit) {
    global $conn;
    $sql = $sql2 = "";
    $ommitFields = explode(',',$ommit);
    $sql = 'INSERT INTO '.mysql_real_escape_string($table).' SET';
    foreach($post as $key=>$val){
        if(!in_array($key,$ommitFields) and $val !='') {
            $sql2 .= ", $key='$val'";
        }
    }
    $sql2 = trim($sql2, ',');
    $sql = $sql.$sql2;
    return mysqli_query($conn,$sql);
}

这将返回mysqli_query,TRUE或FALSE的结果,具体取决于数据库查询的成功。