Подтвердить что ты не робот

Как {} влияет на MySQL-запрос в PHP?

В чем разница между следующими двумя запросами?

mysql_query("UPDATE table SET name = '$name'");

mysql_query("UPDATE table SET name = '{$name}'");
4b9b3361

Ответ 1

На стороне SQL нет абсолютно никакой разницы: два запроса точно совпадают.
(вы можете проверить, что, эхом их)

{$variable} - более полный синтаксис $variable, который позволяет использовать:

  • "this is some {$variable}s"
  • "{$object->data}"
  • "{$array['data']}"
  • "{$array['data']->obj->plop['test']}"


Для получения дополнительной информации вы должны прочитать раздел Переменный синтаксический разбор/сложный (фигурный) синтаксис руководства (цитируя несколько бит):

Это не называется сложным, потому что синтаксис сложный, но поскольку он позволяет использовать комплекс выражения.

Любая скалярная переменная, элемент массива или свойство объекта со строкой представление может быть включено через этот синтаксис.
Просто напишите выражение так же, как и появляются за пределами строки, а затем оберните его в { и }.

Ответ 2

Кудрявые фигурные скобки "убегают" от переменной PHP и не передаются в MySQL. С простой переменной, такой как $name, это не имеет никакого значения, но с чем-то вроде $user['name']. Таким образом, нет ничего другого между двумя запросами, которые вы отправили в своем вопросе.

Ответ 3

Этот запрос может использоваться, если вы хотите передать одну переменную:

mysql_query("UPDATE table SET name = '$name'");

Это можно использовать, если вы передаете значение из определенного индекса массива.

mysql_query("UPDATE table SET name = '{$1}'",$name);

Кстати, ваши оба запроса были также верны в их средствах.