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

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

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

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

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

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

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

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

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

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

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

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

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

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

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