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

12 3
D
На сайте с 28.06.2008
Offline
1101
357

В своих скриптах я использую синтаксис как в первой строке, но в чужих скриптах чаще вижу стиль как в строке снизу.

Они чем то отличаются принципиально?



Елена П.
На сайте с 02.10.2020
Offline
38
#1
Dram :
отличаются

В принципе, ничем, если id уникальный. 

D
На сайте с 28.06.2008
Offline
1101
#2
Елена П. #:

В принципе, ничем, если id уникальный. 

При чем тут id ?  Я про конкатенацию и фигурные скобки вообще-то.

totamon
На сайте с 12.05.2007
Offline
437
#3
просто два способа вывода переменных в строке, вверху вставка переменных в строке, а внизу конкатенация
Домены и хостинг https://8fn.ru/regru | Дедик от 3000р https://8fn.ru/73 | VPS в Москве https://8fn.ru/72 | Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno | ХОСТИНГ №1 РОССИИ https://8fn.ru/beget
Елена П.
На сайте с 02.10.2020
Offline
38
#4
Dram #:

При чем тут id ?  Я про конкатенацию и фигурные скобки вообще-то.

А я Ванга, да ?  

Aisamiery
На сайте с 12.04.2015
Offline
293
#5
Dram :

В своих скриптах я использую синтаксис как в первой строке, но в чужих скриптах чаще вижу стиль как в строке снизу.

Они чем то отличаются принципиально?

Нет не отличаются, оба говнокода под названием SQL Injection, работать с БД надо как то вот так

Да и фигурные скобки то там не нужны можно такие переменные вставлять так, фигурные скобки нужны в строке, когда вставляешь значения массива по ключу или выводишь параметры объекта, например

$str = "This is string {$array["one_time"]}"

Без фигурных скобок такую запись не сделать

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
LEOnidUKG
На сайте с 25.11.2006
Offline
1723
#6
оба говнокода под названием SQL Injection

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

А когда у нас запрос динамический это вообще туши свет работать с  Prepare. Есть инструменты, и ими надо пользоваться с головой.

Поэтому ВСЕГДА надо обрабатывать данные перед запросом, а когда они от клиента, так в двойне надо всё проверять.


Что касается вопроса ТС, то никакой разницы нет в логике работы, но скобки{} для "" просто лишние и не несут никакой пользы т.к. переменные и так обрабатываются в двойных кавычках. Но мне больше нравится стиль ".$var." т.к. можно быстренько накинуть ".trim($var)." если надо.

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

Мусор и отрицательные числа это не инъекция, prepare как раз спасает от неё. Валидировать данные действительно нужно, но в данном случае нет смысла это уточнять.

LEOnidUKG #:
Но мне больше нравится стиль ".$var." т.к. можно быстренько накинуть ".trim($var)." если надо.

Читать в коде эту фигню просто нереальный треш, может тут конечно сказывается работа с другими языками, но в php есть sprintf чтоб не страдать подобной фигней, ставить лишние скобки и прочее.

По мне запись вида:

$str = "This is " . trim($var1) . " and this is " . trim($var2) . " and if " . ($var3 === $var4 ? (int)$var5 : (int)$var6 );

Полное нечитаемое г, хотя это еще очень короткая строка, когда вполне можно записать как:

$str = sprintf(
    "This is %s and this is %s and if %d",
    trim($var1), // Переменная один тут строка от туда
    trim($var2), // Переменная два тут строка от туда
    $var3 === $var4 ? $var5 : $var6 // А тут должно быть число
);
Samail
На сайте с 10.05.2007
Offline
361
#8
Скобки  {}  в данном конкретном случае конечно не нужны, но попробуйте написать например {$id}132 или {$id}_aaa без скобок , так что в двойных кавычках они тоже часто нужны.
Aisamiery
На сайте с 12.04.2015
Offline
293
#9
Samail #:
Скобки  {}  в данном конкретном случае конечно не нужны, но попробуйте написать например {$id}132 или {$id}_aaa без скобок , так что в двойных кавычках они тоже часто нужны.

Я, если честно, за больше чем 10 лет практики вообще не пользовался никогда этим функционалом и в своей повседневной работе даже придумать кейс не могу, где там мне надо было бы написать. Так что "тоже часто нужны" субъективное утверждение. Я вообще сторонник того что строки (литералы) должны быть в апострофах (одиночных кавычках), как то так повелось ещё в самом начале пути в разработке на php

E
На сайте с 01.10.2017
Offline
94
#10
Dram :
Они чем то отличаются принципиально?
Нет. Фигурные скобки часто используются без прямой необходимости для "зрительного" выделения или подсветки синтаксиса.


Aisamiery #:
оба говнокода под названием SQL Injection

"SQL Injection" - это все-таки вмешательство извне. Нет необходимости всегда использовать подготовленные запросы 😉

Домены на продажу: https://p20.ru/collection/domains-for-sale
12 3

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