在mysql查询的WHERE子句中使用php变量


using a php variable in the WHERE clause of a mysql query

我正在运行一个非常简单的查询,我认为它应该可以工作。我以前唯一没有做的事情就是在查询的WHERE子句中放入一个php变量。变量$X是一个数值,比如100。当我运行这个查询时,我只返回了一个值0。我是在做明显愚蠢的事吗?

SELECT generator_64k.n
FROM generator_64k
WHERE generator_64k.n<= '$X'

我在网上浏览过,也尝试过这个:

SELECT generator_64k.n
FROM generator_64k
WHERE generator_64k.n<= '" . $X . "'

但这也只是返回0。

有什么想法吗?提前谢谢。

$query = "SELECT generator_64k.n FROM generator_64k WHERE generator_64k.n<= {$X};";

试试这个,或者发布你的PHP代码。

<?php
$X = 100;
$query = "SELECT n FROM generator_64k WHERE n <= $X";
$result = mysql_query($query);
if (!$result) {
   echo ('Query error: ' . mysql_error());
}
php的E.g和使用变量$query="从表1中选择*,其中col1<="$myVariable;

$result=mysql_query($query);

mysql_query()函数在出现错误时返回false(false==0),否则返回一个资源。mysql_query不返回结果集中的值。必须使用mysql_fetch_assoc或类似的方法从结果集中提取行。

此外,请确保将查询用双引号括起来,以便PHP可以展开变量$X

使用mysql_error从对mysql_query的最后一次调用中获取错误。

让它像这个

$sql="select `username` from `users` where id='$newid';";
mysql_query($sql);

这里$newid是int值。用户名前后使用的符号,要得到这个,你必须按下esc下方的键。

您的数值周围不能有'。MySQL会将其视为字符串。

你应该这样做,而不是

" WHERE number <= " . (int)$val . " .. "
// or (but not recommended due to security problem)
" WHERE number <= $val "