引号“和”之间的区别是什么?怎么样?使用不同的引号和“下面是否有错误?”
$result = pg_query_params($dbconn,
'INSERT INTO users
(username, email, passhash_md5)
VALUES ($1, $2, $3)',
array($username, $email, $passhash_md5
)
$result = pg_query_params( $dbconn,
"SELECT user_id
FROM users
WHERE email = $1",
array( $email )
)
答案 0 :(得分:19)
当使用单引号(')时,不会进行变量替换,这意味着如果第一个示例中的值实际上是$ 1 $ 2等,如果它是常规字符串并且没有传递给替换它们的函数。< / p>
如果您不需要变量替换,出于性能原因,最好坚持使用单引号。
``调用shell引擎并将其作为实际命令调用,并返回结果,就像在perl中一样。因此,它具有完全不同的含义。
的示例:
$email = 'user@example.org'; $sql1 = "SELECT user_id FROM users WHERE email = $email"; $sql2 = 'SELECT user_id FROM users WHERE email = $email';
$ sql1将是SELECT user_id FROM users WHERE email = user@example.org
$ sql2将是SELECT user_id FROM users WHERE email = $ email
答案 1 :(得分:3)
基本上,"
允许您嵌入变量:
<?php
$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
?>
(来自php manual)
使用'
表示不会检查变量。
<?php
echo '$beer';
?>
输出$beer
。
答案 2 :(得分:2)
单引号和双引号字符串之间的区别在PHP manual about Strings。
中得到了很好的解释在您的示例中,由于您使用的替换变量(例如$1
)表示特定于pg_query_params
的某些内容,而您不希望PHP将其解释为变量名称,您应该为SQL查询字符串使用单引号。