【问题标题】:What are rules for using single and double quote in php?在php中使用单引号和双引号的规则是什么?
【发布时间】:2014-01-24 19:05:14
【问题描述】:

我想知道何时在双引号中使用单引号,反之亦然。当涉及到变量时,情况会变得更加复杂。

例如,我尝试使用以下代码将值插入数据库:

$sql = 'INSERT INTO demo_table (name, dob, age, address) VALUES ("$name", "$dob", "$age", "$address")';

它确实有效,但它会将 $name、$dob、$age 和 $address 解释为字符串,而不是保存值的变量,因此不会保存实际值。

在使用单引号、双引号、带反斜杠的引号(如\'或\")时是否有任何规则,以及当需要在引号内使用引号时该怎么做。我还看到了一些使用连接符号的代码(.) 在引号内。这背后的逻辑是什么?

【问题讨论】:

  • 你读过the documentation吗?
  • 如果您将 PDO 与准备好的语句一起使用,您将不会有这样的问题

标签: php quotes


【解决方案1】:

应该是这样的:

 $sql = "INSERT INTO demo_table (name, dob, age, address) VALUES ('".$name."', '".$dob."', '".$age."', '".$address."')";

【讨论】:

  • 为什么“应该”是这样,当您可以直接使用双引号字符串中的变量时,为什么要使用连接?
【解决方案2】:

数据库字符需要单引号' '。 所以将查询中的字符保留在''中。

$query="INSERT INTO table_name (name, email, password) VALUES ('$username','$email','$password')";

【讨论】:

    【解决方案3】:

    在 php 中,单引号中的字符串是常量值,双引号中的字符串是动态字符串。 所以你可以使用:

    $sql = "INSERT INTO demo_table (name, dob, age, address) VALUES ('$name', '$dob', '$age', '$address')";
    

    $sql = "INSERT INTO demo_table (name, dob, age, address) VALUES ('".$name."', '".$dob."', '".$age."', '".$address."')";
    

    注意 .连接字符串值的$name$dob$age$address 变量的任一侧。

    最好将查询创建为字符串。这样做可以让您在检查以确定产生您期望的值时回显查询。 希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2011-06-02
      • 1970-01-01
      • 1970-01-01
      • 2013-10-20
      • 1970-01-01
      • 1970-01-01
      • 2012-05-07
      • 2011-03-27
      相关资源
      最近更新 更多