2014-09-04 114 views
-4

为什么不做这项工作?可捕捉的致命错误:类mysqli_result的对象无法转换为字符串,我无法找到它

function user_data($user_id) { 
    global $con; 
    $user_id = $_SESSION['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) . '`'; 
     $res = mysqli_query($con, "SELECT $fields as velden FROM `users` WHERE `user_id` = '$user_id'"); 
     $row = mysqli_fetch_array($res); 

    } 
} 

我搜索了很多,但找不到修复程序。

+1

你传递给'user_data()'的参数是什么?你在哪里使用'$ row'?哪一行显示此错误(这是调试的关键)? – 2014-09-04 17:55:47

+1

'可捕捉的致命错误:类mysqli_result的对象不能转换为字符串'也有行号,它是什么? – 2014-09-04 17:59:07

+0

它是关于 - $ res = mysqli_query($ con,“SELECT $ fields as velden FROM'users' WHERE'user_id' ='$ user_id'”); – 2014-09-04 17:59:57

回答

1

此错误几乎总是意味着查询失败,因此请检查查询。

试试这个:

$fields = '`' . implode('`, `', $func_get_args) . '`'; 
$sql = "SELECT $fields as velden FROM `users` WHERE `user_id` = '$user_id'"; 
echo $sql; 

现在,如果误差是不明显的眼睛,复制查询并在phpMyAdmin运行它或任何工具,你用它来管理你的数据库。

如果您的$fields阵列中存在多个字段,几乎可以肯定这部分查询会导致错误。 SELECT $fields as velden请尝试删除as velden

相关问题