What is the difference between the following 2 queries?
mysql_query("UPDATE table SET name = '$name'");
mysql_query("UPDATE table SET name = '{$name}'");
What is the difference between the following 2 queries?
mysql_query("UPDATE table SET name = '$name'");
mysql_query("UPDATE table SET name = '{$name}'");
 
    
    ON the SQL side, there is absolutely no difference : the two queries are exactly the same.
(you can check that by echo-ing them)
{$variable} is a more complete syntax of $variable, that allows one to use :
"this is some {$variable}s""{$object->data}""{$array['data']}""{$array['data']->obj->plop['test']}"
For more informations, you should read the Variable parsing / Complex (curly) syntax section of the manual (quoting a few bits) :
This isn't called complex because the syntax is complex, but because it allows for the use of complex expressions.
Any scalar variable, array element or object property with a string representation can be included via this syntax.
Simply write the expression the same way as it would appear outside the string, and then wrap it in{and}.
 
    
    The curly braces "escape" the PHP variable and are not passed to MySQL.  With a simple variable like $name it doesn't make a difference but with something like $user['name'] it does. So there is nothing different between the two queries you have posted in your question.
 
    
    This query can be used if you want to pass a single variable:
mysql_query("UPDATE table SET name = '$name'");
This can be used if you are passing a value from an array's particular index.
mysql_query("UPDATE table SET name = '{$1}'",$name);
By the way your both queries were also correct in their means.
