2014-02-02 2 views
0

Я уверен, преобразование этой функции: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); 
      } 
     } 

    } 
} 

Любые рекомендации или советы очень ценятся.

+0

Почтовый индекс для того, как вы вызываете функцию user_data(). –

+0

Я тестирую его простым использованием . 25 - это просто user_id в моей базе данных. – user1839601

+0

Нет, неважно, я тупой. – user1839601

ответ

0

if ($func_num_args > 1) {

Эта линия препятствует любой из вложенного кода от выполняется, когда вы только передать один аргумент в функцию user_data(). Эта функция была разработана для передачи идентификатора пользователя И списка столбцов для выбора данных из таблицы базы данных пользователей.

Вместо вызова user_data(25);

попробовать что-то вроде

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

Смежные вопросы