Синтаксис PHP при записи в б базу SQL

123
E
На сайте с 01.10.2017
Offline
115
#11
Aisamiery #:
Я вообще сторонник того что строки (литералы) должны быть в апострофах (одиночных кавычках), как то так повелось ещё в самом начале пути в разработке на php

Это верно. Но в MySQL апострофы - тоже "приоритетные" символы кавычек, поэтому ваше правило в данном случае далеко не всегда работает, даже если не пытаться вставлять переменные непосредственно в PHP-строки.

"`id`='".$id."'" // или "`id`='$id'", или "`id`='{$id}'"
👍
'`id`=\''.$id.'\''
👎
Домены на продажу: https://p20.ru/collection/domains-for-sale
W1
На сайте с 22.01.2021
Offline
306
#12
Dram :
Они чем то отличаются принципиально?

Принципиально они отличаются тем, что конкатенация - это более "естественный" способ представления строки, составленной из разнородных элементов - строк, простых переменных, элементов массивов и пр. Конкатенация работает всегда и лично для меня более наглядна, я в этом случае чётко вижу, из чего состоит строка. А фигурные скобки "тут работают, тут не работают" и не позволяют быстро разглядеть отдельные элементы, внедрённые в строку. Кроме того, в любой момент может выйти какая-нибудь версия пхп, где фигурные строки будут работать не так, как в предыдущих версиях. А конкатенация - это навсегда, просто и наглядно.

Мой форум - https://webinfo.guru –Там я всегда на связи
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#13
$str = sprintf(
    "This is %s and this is %s and if %d",
    trim($var1), // Переменная один тут строка от туда
    trim($var2), // Переменная два тут строка от туда
    $var3 === $var4 ? $var5 : $var6 // А тут должно быть число
);

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

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Aisamiery
На сайте с 12.04.2015
Offline
315
#14
estic #:
Нет необходимости всегда использовать подготовленные запросы 😉

Лучше сразу прививать правильные привычки

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
Aisamiery
На сайте с 12.04.2015
Offline
315
#15
estic #:
Это верно. Но в MySQL апострофы - тоже "приоритетные" символы кавычек, поэтому ваше правило в данном случае далеко не всегда работает, даже если не пытаться вставлять переменные непосредственно в PHP-строки.

Я не делаю конкатенацию строк, по этому лично для меня это не актуально, имменно из за этого и не делаю, еще в php есть правило приоритетов операторов, так вот так получилось что конкатенация где то по середине и тогда получается всегда ставишь скобки чтоб не накосячить

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#16
webinfo #:

в любой момент может выйти какая-нибудь версия пхп, где фигурные строки будут работать не так, как в предыдущих версиях. 

Кстати так случилось с массивами, я лично никогда не писал, но оказывается можно было раньше писать $array{0} и это работало. Теперь это запрещено.

E
На сайте с 01.10.2017
Offline
115
#17
Aisamiery #:
Лучше сразу прививать правильные привычки

Мне хорошо знакомы эти "правильные" привычки. Поэтому и написал, что в этом нет необходимости.

Aisamiery #:
всегда ставишь скобки чтоб не накосячить

Даже вокруг "одинокой" переменной при конкатенации ставите скобки?

W1
На сайте с 22.01.2021
Offline
306
#18
Aisamiery #:
оба говнокода под названием SQL Injection, работать с БД надо как то вот так

Предвзятое мнение. И неправильное.

S3
На сайте с 29.03.2012
Offline
348
#19
Просветите - а что для PHP не существует ORM никаких? Вот у нас не принято работать так, потому что некоторая потеря производительности при работе через ORM компенсируется тем, что код понятен всем, легко читать и править, все стандартизировано
W1
На сайте с 22.01.2021
Offline
306
#20
Sly32 #:
компенсируется тем, что код понятен всем, легко читать и править, все стандартизировано

Код и так понятен всем.

123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий