Лучший способ установить переменные из запроса к базе данных

0

Я использую PHP5 и MySql, я задавался вопросом, есть ли способ автоматически устанавливать переменные, а не записывать их все?

В настоящее время я использую такой код:

$sSQL = "SELECT * FROM myTable";
$result = mysqli_query($dbi,$SQL); 

if(mysqli_num_rows($result)==0){} 
else 
 {
   //loop and set array
   while ($row = mysqli_fetch_assoc($result)) {
     $field1 = $row['field1'];
     $field2 = $row['field2'];
     $field3 = $row['field3']; 
   }

  $newArray[] = (array(
        "field1" => "$field1",
        "field2" => "$field2",
        "field3" => "$field3"
      ));

В основном я устанавливаю переменные с тем же именем, что и имена полей SQL, а затем устанавливаю массив таким же. Мне было интересно, есть ли более быстрый способ сделать это, чтобы выписать все имена вручную? (Я также знаю, что выбор плохой, это просто для иллюстрации!)

Теги:

2 ответа

2
Лучший ответ

Один из вариантов - использовать явные имена полей в запросе SQL и напрямую назначить каждую строку результатов. Кроме того, выбор столбцов с * снижает производительность и делает цель вашего запроса менее ясной.

$sSQL = "SELECT field1, field2, field3 FROM myTable";

// other code

while ($row = mysqli_fetch_assoc($result)) {
    $newArray[] = $row;
}

Однако, если вы просто хотите, чтобы переменные создавались динамически, extract() мог бы сделать трюк.

0

Почему вы пишете "mysqli"? Почему я?

И о вашем вопросе: самый обычный способ (и даже самый простой способ) - через mysql_fetch_object, а затем вы описываете var как   $ var = $row- > FIELD;

mysql_fetch_assoc - еще одна возможная функция, но первая работает намного лучше, чем ассоциировать...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню