不久前我开始了一个 PHP 端项目,最近开始清理所有代码并更新它。部分原因是开始使用 PDO 进行 DB 查询。在一个特定的查询中,我有一个WHERE
使用该BETWEEN
子句和INET_ATON()
函数的子句语句。到目前为止,我还不能让它正常工作,如果有人能指出它是否能正常工作,我将不胜感激。
我发现这个问题让我相信该BETWEEN
语句没有任何问题,但我担心这可能是与导致问题的函数的组合。
这是我查询的那部分的样子:
SELECT foo, bar FROM table JOIN more_table
WHERE item1 = :value AND ip_address BETWEEN INET_ATON(:ipstart) AND INET_ATON(:ipend)
实际的查询比这要大得多,但对于基础来说,这是可行的。为了用实际值替换标记,我设置了以下 foreach 循环(var_dump
就在那里,所以我可以验证正确的值正在传入,它们是):
foreach($p as $k=>$v) {
echo var_dump($k, $v);
if(is_int($v)){
$querySubmit->bindValue($k, $v, PDO::PARAM_INT);
} else {
$querySubmit->bindValue($k, $v, PDO::PARAM_STR);
}
}
如果有人知道设置为使用 and 的查询是否有任何限制PDO::Prepare
,我将不胜感激!PDO::bindValue
BETWEEN
INET_ATON()