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

我对这条线有疑问:

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

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

那么在双引号内使用单引号有什么用呢?

4

2 回答 2

0

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

比较两行:

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

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

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

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

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

于 2013-08-11T10:59:31.663 回答
-1

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

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

如果你跳过连接,这应该工作

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

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

您编写它的另一种方式也应该有效,但它的代码比需要的多。

于 2013-08-11T10:47:58.927 回答