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などになります。

可変置換が必要ない場合は、パフォーマンス上の理由から一重引用符を使用することをお勧めします。

``シェルエンジンを呼び出し、それを実際のコマンドとして呼び出し、perlの場合と同様に結果を返します。したがって、それは完全に異なる意味を持っています。

例:

$ email ='user@example.org';
$ sql1 = "SELECT user_id FROM users WHERE email = $ email";
$ sql2 ='SELECT user_id FROM users WHERE email = $ email';

$sql1はSELECTuser_idFROM users WHERE email=user@example.orgになります

$sql2はSELECTuser_idFROM 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 に答える