{}如何影响PHP中的MySQL查询?

时间:2011-03-20 18:15:58

标签: php mysql

以下2个查询之间有什么区别?

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

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

3 个答案:

答案 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);

顺便说一下,你的两个查询都是正确的。