В этом нет ничего волшебного.Помещение вашего SQL в переменную имеет много положительных и отрицательных сторон;то же самое нельзя сказать о передаче вашего SQL-запроса прямо в функцию mysql_query
.
Для начала ... вы используете mysql_query
напрямую?Большинство разработчиков собираются обернуть такие функции в некоторый объект / контроллер базы данных, или они собираются использовать PDO или тому подобное.В любом случае, помещение SQL в переменную позволяет вам легко поменять то, что вы передаете SQL на .Когда я обновляю код для переключения методологии доступа к базе данных, мне легче, если я меняю строку типа mysql_query($sql)
вместо mysql_query('SELECT .... SUPER LONG QUERY ...')
.
При отладке можно просто echo($sql)
.Если кто-то хочет выполнить запрос подсчета отдельно от запроса данных:
$sql = ' FROM table_name WHERE `some_field` = 1';
$count = db::getField('SELECT COUNT(`id`) '.$sql);
$page_worth = db::getRows('SELECT `id`, `name` '.$sql.' LIMIT '.$page.', '.$per_page);
И так далее, и так далее.Это действительно сводится к предпочтениям, но я считаю этот подход гораздо более гибким и быстро адаптируемым / отлаживаемым.