7

引号 " 和 ' 有什么区别?那 ` 呢?下面使用不同的引号 ' 和 " 是否有错误?

 $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 )
          )
4

3 回答 3

20

使用单引号 (') 时不会进行变量替换,这意味着如果它是常规字符串并且没有传递给替换它们的函数,则第一个示例中的值实际上是 $1 $2 等。

如果您不需要变量替换,出于性能原因,最好坚持使用单引号。

`` 调用 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

于 2009-08-23T08:12:36.867 回答
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手册

使用'意味着不检查变量。

<?php
echo '$beer';
?>

会输出$beer

于 2009-08-23T08:12:17.350 回答
2

单引号和双引号字符串之间的区别在关于字符串的 PHP 手册中有很好的解释。

在您的示例中,由于您正在使用替换变量,例如$1表示特定于pg_query_params并且您希望 PHP 将其解释为变量名称的替换变量,因此您应该为 SQL 查询字符串使用单引号。

于 2009-08-23T08:09:52.237 回答