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

时间:2012-03-18 17:42:46

标签: php mysql variables

我正在运行一个非常简单的查询,我觉得应该可行。我之前没有做过的唯一事情就是在查询的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。

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

6 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

<?php
$X = 100;
$query = "SELECT n FROM generator_64k WHERE n <= $X";
$result = mysql_query($query);
if (!$result) {
   echo ('Query error: ' . mysql_error());
}

答案 2 :(得分:0)

例如php和使用变量 $ query =“select * from table1 where col1&lt; =”。$ myVariable;

$ result = mysql_query($ query);

答案 3 :(得分:0)

mysql_query()函数在出错时返回false(false == 0),否则返回资源。 mysql_query不返回结果集中的值。您必须使用mysql_fetch_assoc或类似的东西来获取结果集中的行。

另外,请确保将查询包装在双引号中,以便PHP可以展开变量$X

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

答案 4 :(得分:0)

像这样做

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

这里$ newid是int值。 在用户名之前和之后使用的符号,要获得此符号,您必须按下esc。下面的键。

答案 5 :(得分:-2)

您的数值不能包含'。 MySQL会将其视为字符串。

你应该这样做

" WHERE number <= " . (int)$val . " .. "

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