Php 在使用函数时,是否在数据库中重复输入?

Php 在使用函数时,是否在数据库中重复输入?,php,mysql,function,mysqli,Php,Mysql,Function,Mysqli,您好,我在使用函数将用户数据插入数据库时遇到问题。查询将执行两次,我不知道为什么会发生这种情况 我确实使用了以下代码: 如果(空($\u POST['submit'])==false&&empty($errors)===true){ } 其功能是: function array_sanitize(&$item){ global $db; return mysqli_real_escape_string($db, $item); } function register_u

您好,我在使用函数将用户数据插入数据库时遇到问题。查询将执行两次,我不知道为什么会发生这种情况

我确实使用了以下代码:

如果(空($\u POST['submit'])==false&&empty($errors)===true){

}

其功能是:

function array_sanitize(&$item){
    global $db;
    return mysqli_real_escape_string($db, $item);
}

function register_user($register_data){
    global $db;
    array_walk($register_data, 'array_sanitize');

    $fields = '`' . implode('`, `', array_keys($register_data)) . '`';
    $data = '\'' . implode('\', \'', $register_data) . '\'';

    $insert = $db->query("INSERT INTO `table1` ($fields) VALUES ($data) "); 
    return (true);
}
但在更换此功能时:

function register_user($register_data){
    global $db;
    array_walk($register_data, 'array_sanitize');

    $fields = '`' . implode('`, `', array_keys($register_data)) . '`';
    $data = '\'' . implode('\', \'', $register_data) . '\'';

    $sql = "INSERT INTO `table1` ($fields) VALUES(?,?,?,?,?,?,?,NOW())";
        if($query = $db->prepare($sql)){
            $query->bind_param('sssssss', $data);
            $query->execute();

            if ($query->affected_rows == 1) {
                echo 'success';
            } else {
                echo 'nope';
            }
        }

    return (true);
}
从数组$register\u数据中删除最后一个键根本不起作用

如果有人能帮我,那就太好了


非常感谢。

您称此为
register\u用户($register\u data)两次。一次是直接的,一次是if语句的一部分。

我不懂php,但可以尝试以下方法:

$result=register_user($register_data);

if ($result == true) {    
 echo "done";
}
$result=register_user($register_data);

if ($result == true) {    
 echo "done";
}