Php Mysqli语句返回错误
我试图使用这个mysqli语句从数据库返回真实的数据Php Mysqli语句返回错误,php,mysql,mysqli,Php,Mysql,Mysqli,我试图使用这个mysqli语句从数据库返回真实的数据 $resulttwo = mysqli_query($link, " SELECT * FROM Events WHERE time >= '%$lasttime%'"); 变量“lasttime”是一个非常高的浮点值。数据库中的数字都低于此数字。但是,当我使用此语句时,它将返回数据库中的所有行。我不明白为什么使用这种比较会产生错误的结果。我缺少什么吗?“%$lasttime%”是一个字符串,用于数字比较时等于零时间可以是一个字
$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@ekadtime
列是字符串类型?什么字符串类型<代码>变量字符<代码>时间?数据类型?。还有,%
通配符是怎么回事呢?为了好玩,把它变成$query=“SELECT*FROM Events WHERE time>=”%$lasttime%”;echo$query$resulttwo=mysqli\u查询($link,$query)改为使用code>查看查询失败的原因。虽然你在发布这个问题之前应该这样做,但真的。WHERE time像“%$lasttime%”
或WHERE time>='$lasttime'
哇,这是一个很好的解释。谢谢