我正在转换此功能:
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);
}
}
}
}
非常感谢任何指导或提示。
答案 0 :(得分:0)
if ($func_num_args > 1) {
当您只将一个参数传递给user_data()函数时,此行阻止执行任何包含的代码。此函数旨在传递用户标识和列列表,以从用户数据库表中选择数据。
而不是调用user_data(25);
尝试类似
的内容 user_data(25, 'column_name1', 'column_name2');