$stmt = $mysqli->prepare("SELECT vin FROM jobs WHERE out between ? and ?");
$stmt->bind_param('ss', $startday, $endday);
$startday = '2013-01-01';
$endday = '2013-12-31';
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($vin);
echo $vin;
如果我删除了部分声明,上面的代码会发出查询错误。我试图将列名括在括号中,但是也会杀死查询,所以我不得不删除它们。似乎问题是与条款之间我可能不知道如何使用它。请帮忙
Fatal error: Call to a member function bind_param() on a non-object
答案 0 :(得分:3)
问题不在BETWEEN
子句上,而是使用保留关键字OUT
作为列名。有两种方法可以保持这项工作,
一个是用反引号包裹它,
$stmt = $mysqli->prepare("SELECT vin FROM jobs WHERE `out` between ? and ?");
另一种方法是在表格上提供ALIAS
,并将其与列名一起使用。
$stmt = $mysqli->prepare("SELECT vin FROM jobs a WHERE a.out between ? and ?");