php - 单引号混合使用双引号

时间:2013-08-11 10:37:06

标签: php double quotes mysql-escape-string

     <?php
       $query = "SELECT * ";
       $query .= "FROM subjects ";
       $query .= "WHERE id='" . $subject_id ."' ";;
       $query .= "LIMIT 1";
     ?>

我对此行有疑问:

     <?php 
       $query .= "WHERE id='" . $subject_id ."' "; 
     ?>

当我使用双引号时,它只给了我这个错误: “数据库查询失败:您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以便在第1行的'LIMIT 1'附近使用正确的语法”

那么在双引号中使用单引号的用法是什么?

2 个答案:

答案 0 :(得分:0)

在双引号中使用单引号是您还需要将字符串传递给MySQL。 PHP和MySQL都使用单引号和双引号作为字符串分隔符。

比较两行:

 $query .= "WHERE id='" . $subject_id ."' ";

这是PHP字符串中的MySQL字符串(分隔符是单引号)(分隔符是双引号)。

 $query .= "WHERE id=" . $subject_id ." ";

这次没有MySQL字符串,只有PHP字符串。

假设列id是数字字段,您将使用后一种变体。

答案 1 :(得分:-1)

问题可能只是一个错误,但这一行有2个分号:

$query .= "WHERE id='" . $subject_id ."' ";;

如果你跳过连接,这应该可行

$query .= "WHERE id='$subject_id' ";

在PHP中,在双引号内,单引号是文字的,变量是扩展的。

你编写它的另一种方式也应该有效,但它的代码多于所需的代码。