Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysqli语句返回错误_Php_Mysql_Mysqli - Fatal编程技术网

Php Mysqli语句返回错误

Php Mysqli语句返回错误,php,mysql,mysqli,Php,Mysql,Mysqli,我试图使用这个mysqli语句从数据库返回真实的数据 $resulttwo = mysqli_query($link, " SELECT * FROM Events WHERE time >= '%$lasttime%'"); 变量“lasttime”是一个非常高的浮点值。数据库中的数字都低于此数字。但是,当我使用此语句时,它将返回数据库中的所有行。我不明白为什么使用这种比较会产生错误的结果。我缺少什么吗?“%$lasttime%”是一个字符串,用于数字比较时等于零时间可以是一个字

我试图使用这个mysqli语句从数据库返回真实的数据

$resulttwo = mysqli_query($link, "
SELECT 
*
FROM
Events 
WHERE 
time >= '%$lasttime%'");

变量“lasttime”是一个非常高的浮点值。数据库中的数字都低于此数字。但是,当我使用此语句时,它将返回数据库中的所有行。我不明白为什么使用这种比较会产生错误的结果。我缺少什么吗?

“%$lasttime%”
是一个字符串,用于数字比较时等于零<代码>时间可以是一个字符串列,正如您所说,但是当您使用
=
时,它会成功地转换为数值。如果$lasttime等于12345,$time等于54321,则比较结果为
54321>='%12345%'
,相当于
54321>=0
,因为
'%12345%'
不会转换为整数

要测试:

select '%12345%' = 0, '12345' = 0
返回TRUE(因为这是一个非数字字符串,其值为0)和FALSE(因为该字符串可以转换为12345,但不等于0)


我不知道你为什么要在这个查询中使用通配符。

时间列的类型是什么?您使用的
lasttime
的值是多少?time是字符串类型,而我上次使用的值(作为字符串发送)是1415143730300@ekad
time
列是字符串类型?什么字符串类型<代码>变量字符<代码>时间?数据类型?。还有,
%
通配符是怎么回事呢?为了好玩,把它变成
$query=“SELECT*FROM Events WHERE time>=”%$lasttime%”;echo$query$resulttwo=mysqli\u查询($link,$query)查看查询失败的原因。虽然你在发布这个问题之前应该这样做,但真的。
WHERE time像“%$lasttime%”
WHERE time>='$lasttime'
哇,这是一个很好的解释。谢谢