mysql到mysqli的功能有困难

时间:2014-02-02 20:41:45

标签: php mysql mysqli

我正在转换此功能:

function user_data($user_id) {
    $data = array();
    $user_id = (int)$user_id;

    $func_num_args = func_num_args();
    $func_get_args = func_get_args();

    if ($func_num_args > 1) {
        unset($func_get_args[0]);

        $fields = '`' . implode('`, `', $func_get_args) . '`';
        $data = mysql_fetch_assoc(mysql_query("SELECT $fields FROM `users` WHERE `user_id` = $user_id"));

        return $data;
    }
}

从mysql到mysqli但是我遇到了困难,并且理解为什么我甚至没有收到任何错误,这是我在mysqli版本上的尝试:

function user_data($user_id) {
    global $link;
    $data = array();
    $user_id = (int)$user_id;

    $func_num_args = func_num_args();
    $func_get_args = func_get_args();

    if ($func_num_args > 1) {
        unset($func_get_args[0]);

        $fields = '`' . implode('`, `', $func_get_args) . '`';
        $result = $link->query("SELECT $fields FROM `users` WHERE `user_id` = $user_id");

        if(!$result){
            printf("Errormessage: %s\n", $link->error);
        }else{
            while($data = $result->fetch_assoc()){
                print_r($data);
            }
        }

    }
}

非常感谢任何指导或提示。

1 个答案:

答案 0 :(得分:0)

if ($func_num_args > 1) {

当您只将一个参数传递给user_data()函数时,此行阻止执行任何包含的代码。此函数旨在传递用户标识和列列表,以从用户数据库表中选择数据。

而不是调用user_data(25);

尝试类似

的内容

user_data(25, 'column_name1', 'column_name2');