2013-08-24 3 views
0

Я придумал этот фрагмент кода от других, чтобы собрать данные из базы данных и отобразить его самым простым и безопасным способом без цикла. Однако это не работает, и я хотел бы знать, почему? Итак, мой главный вопрос - как заставить его работать? И 2: nth, как сделать его максимально безопасным?Функция PHP для извлечения данных в виде массивов и отображения

код для отображения данных:

<?php echo $webdata['web_name']; ?> 

код в init.php:

$webdata = webdata('id', 'web_name'); 

Код для функции:

function webdata($data) { 
    $web_data = array(); 
    $func_num_args = func_num_args(); 
    $func_get_args = func_get_args(); 

    global $db_connect; 
    if ($func_num_args > 1) { 
     unset($func_get_args[0]); 
     $fields = '`' . implode('`, `', $func_get_args) . '`'; 

     $query = "SELECT $fields FROM `settings` WHERE id = 1"; 
     $result = $db_connect->query($query); 
     while ($web_data = $result->fetch_assoc()) { 
      return ($web_data); 
     } 
    } 
} 
+0

Есть ли какая-то причина вы положили возвращение в время цикла? Вы просто будете возвращать первую строку; в этом случае было бы более целесообразно удалить цикл и получить «return $ result-> fetch_assoc();' – ChicagoRedSox

+0

@ChicagoRedSox Спасибо за ответ, однако я получаю эту ошибку: «Неустранимая ошибка: вызов функции-члена fetch_assoc () на не-объекте в C: \ WebServer \ htdocs \ peinture_project \ lib \ functions \ functions.php в строке 26', что означает, что мой запрос не удался, но не знает почему? –

+0

Но это не дает ошибку в цикле? Каков результат из 'var_dump ($ result)'? – ChicagoRedSox

ответ

0
  • Вы не имеете data переменную из запроса. У вас есть webdata переменную однако ...

Вместо:

while ($webdata = $result->fetch_assoc()) { return ($data); } 

Использование:

while ($webdata = $result->fetch_assoc()) { return ($webdata); } 
  • Вы просто возвращает первую строку, это то, что вы хотите?
  • Вы не используете переменную $ data, для чего она должна быть?

Это так безопасно, как он получает: у вас нет никаких средств вводить что-то в запрос ...

+0

К сожалению, это не сработало, однако я обновил код, вы можете проверить его сейчас. –

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