MySQL括号?

Ali*_*xel 3 php mysql sql syntax

我已经看到很多将SQL值包含在内的PHP/MySQL问题,{}例如:

SELECT * FROM table WHERE field LIKE '{$value}';
Run Code Online (Sandbox Code Playgroud)

那是怎么回事?它甚至有效吗?为什么这么多人会使用这种奇怪的(至少对我而言)语法?

dan*_*ben 7

来自php.net:

复杂(卷曲)语法

这不称为复杂,因为语法很复杂,但因为它允许使用复杂的表达式.

实际上,命名空间中的任何值都可以包含在具有此语法的字符串中.只需以与字符串外部相同的方式编写表达式,然后将其包装在{和}中.由于{无法转义,因此仅当$紧跟{时,才会识别此语法.使用{\ $获取文字{$.


Eri*_*rik 6

这些用于消除变量名称的歧义,如果您在双引号字符串中使用数组,则绝对需要这些名称,例如:

$SQL = "Select * FROM table WHERE field LIKE '{$value[5]}'";
Run Code Online (Sandbox Code Playgroud)

没有牙套就行不通.

这是PHP.net的另一个很好的例子

$beer = 'Heineken';
echo "$beer's taste is great"; // works; "'" is an invalid character for variable names
echo "He drank some $beers";   // won't work; 's' is a valid character for variable names but the variable is "$beer"
echo "He drank some ${beer}s"; // works
echo "He drank some {$beer}s"; // works
Run Code Online (Sandbox Code Playgroud)

http://php.net/manual/en/language.types.string.php