Php 获取错误数据

Php 获取错误数据,php,mysql,Php,Mysql,我从数据库中提取数据,但得到的回报参差不齐。我需要的是所有条目的bex_ref,其中bex_ref有一个值并且介于两个日期之间 使用两个语句,我得到了正确的结果。但是结合起来,它将返回bex\u ref为空的数据 组合(不工作> $stmt = $mysqli->prepare("SELECT `id`, `bex_ref` FROM `deliveries` WHERE `bex_ref`<>'' AND `inv_date` BETWEEN '2019-06-01' AND

我从数据库中提取数据,但得到的回报参差不齐。我需要的是所有条目的
bex_ref
,其中
bex_ref
有一个值并且介于两个日期之间

使用两个语句,我得到了正确的结果。但是结合起来,它将返回
bex\u ref
为空的数据

组合(不工作>

$stmt = $mysqli->prepare("SELECT `id`, `bex_ref` FROM `deliveries` WHERE `bex_ref`<>'' AND `inv_date` BETWEEN '2019-06-01' AND '2019-07-13'  LIMIT 50 ")

我希望所有的结果都应该有一个
bex\u ref
值,但是返回的
bex\u ref
是空的,但是在正确的日期范围内。

好的,所以我的数据库中有一些东西很奇怪。我注意到在运行查询时,我实际上可以使用它

$stmt=$mysqli->prepare(“在'2019-06-01'和'2019-07-13'之间的'deliveries'中选择'id','bex\u ref',其中'bex\u ref''和'inv\u date'限制50”)
但是当我想回显我的
bef_ref
值时,我的代码没有执行。在phpmyadmin中运行它,我得到的返回值是空的(因此产生了混乱)

然后,我用mysqli_real_escape_string()清理了返回值,在“空”值中不可见0(在real_escape之后返回/0)。我将数据库中的排序规则从latin1_swedish_ci更改为utf8mb4_unicode_ci,一切都很好

他们两天前在我的数据库上做了一次数据库还原,数据库一定已将其恢复为默认的latin1_swedish_ci


感谢您的回复!!

请解释一下,当
bex\u ref
为空时,您是如何知道它在正确的日期范围内的。但是,正如您所假设的,组合查询对我来说似乎是正确的。数据库表中是否有
bex\u ref
为空的行?这必须是查询返回
bex\u ref
为空的情况y、 在这种情况下,您可能没有实际告诉我们发生了什么。查询可能失败,或者没有返回任何结果。使用组合语句,我得到的结果介于日期范围之间,但并非所有的
bex_ref
字段中都有值。是的,存在
bex_ref
为空的条目。语句第一个和第二个是我用来尝试找出什么是错误的,但不能。使用第一个语句,所有的
bex_ref
字段中都有值。使用第二个语句,所有的返回值在日期范围内都是正确的。几乎是(如果不是的话)当执行组合语句时,它忽略了“检查所有查询”选项,它工作正常。演示可能是php代码有问题。显示php代码如何执行查询
$stmt = $mysqli->prepare("SELECT `id`, `bex_ref` FROM `deliveries` WHERE `bex_ref`<>'' LIMIT 50 ")
$stmt = $mysqli->prepare("SELECT `id`, `bex_ref` FROM `deliveries` WHERE  `inv_date` BETWEEN '2019-06-01' AND '2019-07-13'  LIMIT 50 ")