php mysql 2 разных способа - PullRequest
       12

php mysql 2 разных способа

1 голос
/ 18 декабря 2009

Недавно я наткнулся на какой-то код, который этот человек сделал первым. Хотели бы вы подумать о том, что лучший из них лучше, или почему человек так написал? Любые положительные причины по поводу нижнего пути.

$result = mysql_query($query)or die("Obtaining location data failed!");
for ($i = mysql_num_rows($result) - 1; $i >=0; $i--)
{
  if (!mysql_data_seek($result, $i))
  {
    echo "Cannot seek to row $i\n";
    continue;
  }
  if(!($row = mysql_fetch_object($result)))
    continue;
  echo $row->locationname;
}
mysql_free_result($result);

против

$result = mysql_query($query) or die("Obtaining location data failed!");
while($row = mysql_fetch_object($result)){
  echo $row->locationname;
  unset($row);
}
mysql_free_result($result);

Ответы [ 4 ]

1 голос
/ 18 декабря 2009

Эти два не эквивалентны, поскольку только первый обрабатывает набор результатов в в обратном порядке .
Я бы сделал это с предложением ORDER BY x DESC, только чтобы сохранить код простым. При использовании mysql_query () полный набор результатов передается с сервера MySQL процессу php до того, как функция вернется, и mysql_data_seek () перемещает только некоторый указатель в памяти процесса, поэтому с точки зрения производительности это не должно иметь большого значения. Но если в какой-то момент вы решите использовать небуферизованный запрос, вместо этого может очень сильно повлиять на производительность.

1 голос
/ 18 декабря 2009

Похоже, что верхний код перебирает результат mysql в обратном направлении, а первый перебирает его вперед.

Второй пример кода выглядит чище, и, вероятно, есть способ настроить запрос, чтобы сначала получить результаты в обратном порядке, а не несколько запутанно, как был выполнен верхний цикл.

0 голосов
/ 18 декабря 2009

Топ имеет определенные преимущества, когда речь идет о безопасности работы и показателях производительности «строк кода». Кроме того, нет веских причин делать то, что они сделали.

0 голосов
/ 18 декабря 2009

Определенно второй:

меньше кода = меньше кода для поддержки = ~ возможно меньше ошибок !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...