php - mysql转mysqli函数困难

标签 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);
            }
        }

    }
}

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

最佳答案

if ($func_num_args > 1) {

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

而不是调用user_data(25);

尝试类似的事情

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

关于php - mysql转mysqli函数困难,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21515957/

相关文章:

php - 我可以从 HTTP 客户端获取 TLS secret 来解密我自己的 HTTPS 对话吗?

php - 带有 try catch 的 PDO 事务语法

php - DataTables 服务器端处理警告

php - MySqli 错误 : Can't create more than max_prepared_stmt_count statements (current value: 16382)

php - 警告:mysqli_query():无法在第6行的C:\…\localweb\test-pagini.php中获取mysqli

php - 如何从mysql中获取分层菜单

php - 这个 MySQL 准备好的语句有什么问题? "unkown column in where clause"

android - 从 webview 访问原生 android 方法

php - 如何使用 ORDER BY 选择多行

php - 我需要坚持准备好的陈述吗?