2013-04-04 58 views
3
$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; 

上面的代碼發現了這個錯誤查詢工作,如果我刪除之間的部分陳述。我試圖用括號括住列名,但也殺死了查詢,所以我不得不刪除它們。似乎問題是與之間的條款,我可能不知道如何使用它。請幫助mysqli準備報表日期和條款之間

Fatal error: Call to a member function bind_param() on a non-object 

回答

3

的問題是不是在BETWEEN條款,但theuse作爲列名保留關鍵字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 ?");