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

在mysql查询的WHERE子句中使用php变量,php,mysql,variables,Php,Mysql,Variables,我正在运行一个非常简单的查询,我认为应该可以运行。我以前唯一没有做的事情就是在查询的WHERE子句中放入一个php变量。变量$X是一个数值,比如说100。当我运行这个查询时,我只得到返回的值0。我在做一些明显愚蠢的事吗 SELECT generator_64k.n FROM generator_64k WHERE generator_64k.n<= '$X' 选择生成器_64k.n 来自发电机_64k 其中generator_64k.n$query=“从generator_64k.n中选

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

SELECT generator_64k.n
FROM generator_64k
WHERE generator_64k.n<= '$X'
选择生成器_64k.n
来自发电机_64k

其中generator_64k.n
$query=“从generator_64k.n中选择generator_64k.n,其中generator_64k.n
$query=“从generator_64k.n中选择generator_64k.n,其中generator_64k.n您的数值周围不能有
。MySQL会将其视为字符串

你应该这样做

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

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

“其中number不能在数值周围包含
。MySQL会将其视为字符串

你应该这样做

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

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

“其中数字例如php和使用变量

$query=“从表1中选择*,其中col1例如php和使用变量 $query=“select*from table1,其中col1函数在出错时返回false(false==0),否则返回资源。mysql\u查询不会从结果集中返回值。必须使用或类似的方法从结果集中获取行

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

用于从上次调用mysql_查询中获取错误。

函数在出现错误时返回false(false==0),否则返回资源。mysql\u查询不会从结果集中返回值。必须使用或类似的方法从结果集中获取行

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


用于从上次调用mysql_查询中获取错误。

试试这个,或者发布您的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代码

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

$sql="select `username` from `users` where id='$newid';";
mysql_query($sql);
这里$newid是int值。 用户名前后使用的符号,要获取此信息,必须按esc下方的键。

如下所示

$sql="select `username` from `users` where id='$newid';";
mysql_query($sql);
这里$newid是int值。
用户名前后使用的符号,要获得该符号,您必须按esc下方的键。

您可以发布PHP代码吗?在PHP中,MySQL查询只是通过套接字发送到MySQL的字符串。如果没有构造字符串(您的查询)的PHP代码,我们将无法帮助您。可能存在重复的,请将PHP代码发布到各处?在PHP中,MySQL查询只是通过套接字发送到MySQL的字符串。如果没有构造字符串(您的查询)的PHP代码,我们将无法帮助您。可能重复No,MySQL不关心您是否将整数作为
'5'
传递。它将在使用前简单地转换。做你的研究!php不需要强制转换变量强制转换
(int)$val
是毫无意义的,因为
整数
$val
由于
字符串
串联而立即被强制转换回
字符串
。MySQL不知道PHP变量的类型。你只是把查询作为字符串传递给mysql。我不敢相信还有人不知道sqli注入的风险。伙计,你为什么不接受一些好的批评并从中学习呢?我当然知道SQL注入。我真的很难过,你关于数值的无稽之谈仍然存在。不,MySQL不在乎你是否将整数作为
'5'
传递。它将在使用前简单地转换。做你的研究!php不需要强制转换变量强制转换
(int)$val
是毫无意义的,因为
整数
$val
由于
字符串
串联而立即被强制转换回
字符串
。MySQL不知道PHP变量的类型。你只是把查询作为字符串传递给mysql。我不敢相信还有人不知道sqli注入的风险。伙计,你为什么不接受一些好的批评并从中学习呢?我当然知道SQL注入。让我非常难过的是,你关于数值的
的胡说八道的说法仍然存在;检查与MySQL服务器版本对应的手册,以获取第行“”附近要使用的正确语法1@user1262890编辑了这篇文章。我也错过了SQL语法中的分号。从
{$X}”;
更改为
{$X}很遗憾,这会返回一个错误:您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以获取第行“”附近要使用的正确语法1@user1262890编辑了这篇文章。我也错过了SQL语法中的分号。从
{$X}”;
更改为
{$X}