MySQL错误源于在WHERE语句中使用整数

时间:2013-07-16 14:29:47

标签: php string web mysqli integer

我正试图让我所有的学生从11年级的学生那里学习。

$students = mysqli_query($con, "SELECT * FROM SCstudents WHERE Grade='11'");

由于某种原因,上面的代码没有返回任何内容。我知道这是因为当我尝试使用

运行循环时
mysqli_fetch_array($students)

没有任何迭代。

这可能是因为11是一个整数,它是一个像字符串一样的引号? SCstudents表中约有3名学生的成绩为11。

3 个答案:

答案 0 :(得分:0)

  

这可能是因为11是一个整数,它是一个像字符串一样的引号吗?

没有

答案 1 :(得分:0)

此特定问题与查询无关。

来自mysqli_query()上的手册:

  

失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或   EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于   其他成功的查询mysqli_query()将返回TRUE。

所以$students是boolean或mysqli_result对象,而不是null

在下面的评论中,您指出null已被给出,因此看起来$students变量 - 您使用它的位置 - 与您定义它的位置不同。

听起来像是一个可变范围问题,但其他可能性包括覆盖变量等等。

答案 2 :(得分:0)

当我遇到这样的问题时,我手动运行查询。但是你已经这样做了。

要检查表中是否有任何空格,请执行此查询并检查是否有任何结果。

SELECT * FROM SCstudents WHERE Grade LIKE '%11%'

如果您在11之前或之后有任何空格,这仍应该给您结果,并且您知道自己走在了正确的轨道上。