В чем разница между следующими двумя запросами?
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);
Кстати, ваши оба вопроса были верны и в их средствах.