Xwab
Форумыnavigate_nextПрограммирование на PHP

Кавычки в SQL запросах
А как вы думаете?
Первый вариант: 83%
Второй вариант: 16%
Опрошено: 30
Сообщения
Elime

В общем, на одном ресурсе, я у меня завязался спор с несколькими людьми о правилах хорошего тона в написании SQL запросов в php функциях.

1.
Я говорю что правильнее писать запрос в двойных кавычках:
mysql_query("SELECT * FROM `tbl`");

2.
Собеседник же говорит обратное:
mysql_query('SELECT * FROM `tbl`');

Я считаю, что при написании запросов в одинарных кавычках, могут возникнуть траблы.

А как считаете Вы? В каких кавычках стоит писать SQL запросы?


__________
посл.ред. 30 Дек 2011, 23:07; всего 1 раз 30 Дек 2011, 22:58
oee

Это написание ковычек в функциях php а не sql. Первый вариант просто удобнее, не нужно смотреть за ковычками внутри запроса. А так разницы нет вроде

30 Дек 2011, 23:03
Elime

оее, спасибо, подправил вопрос

30 Дек 2011, 23:08
deadline404

Elime, "Я считаю, что при написании запросов в одинарных кавычках, могут возникнуть траблы. " - Если криво составлять запрос то не только в SQL могут возникнуть проблемы.

А так удобнее юзать первый вариант, если имеются переменные.

30 Дек 2011, 23:10
Elime

D.T.S, Может не правильно выразился, хотел сказать что во втором случае легко ошибиться в запросе.

30 Дек 2011, 23:12
SL_NeKrOmAnT

Пишу в стиле первого варианта. Так что 1

31 Дек 2011, 0:31
Sandr

Так же как и автор, считаю, что 1й вариант удобнее.

31 Дек 2011, 0:37
san

В правилах хорошего тона писать так, как принято в команде. Но, если проект будет переходить из рук в руки (а оно так и будет), то стоит писать 1й вариант. Более того, я вообще не вижу особого смысла заниматься секасом с одинарными кавычками вообще нигде в php. Они нужны разве что когда у вас пара килобайт plaintext... но никто в здравом уме не хранит столько текста в теле скрипта.
Первый вариант позволит писать более clean&readable code, который человеку который придет после вас не составит труда просто прочитать, а не заниматься тем, чем должен заниматься сервер, тобишь ему не придется интерпретировать ту кашу которую вы напишете используя одинарные кавычки.

"SELECT `id`,`name`, `count`-$tcount `count` FROM `$table` t JOIN `$table2` t2 ON t.id=t2.t_id WHERE `field`='$content' AND `text` LIKE '%$like_content%'"

читается явно лучше чем

'SELECT `id`,`name`, `count`-'.$tcount.' `count` FROM `'.$table.'` t JOIN `'.$table2.'` t2 ON t.id=t2.t_id WHERE `field`=\''.$content.'\' AND `text` LIKE \'%'.$like_content.'%\''

Во втором случае мы получаем феерический bulsheet with single quotes, dots & slashes. После чтения подобной ерунды, хочется встать, подойти и высыпать ведро навоза на стол писателя создавшего сей бред, дабы он тоже почувствовал, как это... читать код индийских коров.

31 Дек 2011, 0:48
Sandr

san, после того, как вижу подобный код, то лишний раз убеждаюсь в том, что я не худший программист в этой стране))

31 Дек 2011, 0:52
Framework

san, код игнайтер, если я не ошибаюсь, говорит что-бы все было в одинарных кавычках.

31 Дек 2011, 1:06
Ответить на тему