以下2个查询之间有什么区别?
mysql_query("UPDATE table SET name = '$name'");
mysql_query("UPDATE table SET name = '{$name}'");
答案 0 :(得分:20)
在SQL方面,绝对没有区别:两个查询完全相同。
(你可以通过回复来检查它们)
{$variable}
是$variable
的更完整语法,允许用户使用:
"this is some {$variable}s"
"{$object->data}"
"{$array['data']}"
"{$array['data']->obj->plop['test']}"
有关更多信息,请阅读手册的Variable parsing / Complex (curly) syntax部分(引用几位):
这不称为复杂因为 语法很复杂,但因为它 允许使用复杂的 表达式。
任何标量变量,数组元素或 带有字符串的object属性 表示可以包括在内 这个语法。
中
只需写下来 以同样的方式表达 出现在字符串之外,然后 将其包装在{
和}
。
答案 1 :(得分:7)
大括号“转义”PHP变量并且不会传递给MySQL。使用像$name
这样的简单变量,它没有什么区别,但它有$user['name']
之类的东西。因此,您在问题中发布的两个查询之间没有任何区别。
答案 2 :(得分:2)
如果要传递单个变量,可以使用此查询:
mysql_query("UPDATE table SET name = '$name'");
如果从数组的特定索引传递值,则可以使用此方法。
mysql_query("UPDATE table SET name = '{$1}'",$name);
顺便说一下,你的两个查询都是正确的。