2015-06-30 101 views
0

我們的框架位於Zend框架之上。 column()工作方式的改變導致我們的數據庫調用出現問題。之前,它是精做這樣的事情:Zend/Db/Sql /列中的新Zend框架更改導致問題

$distanceFormula = "$earthRadius*ACOS(COS(RADIANS($lat)))"; 
$select->columns(array('distance' => $distanceFormula)); 

這創造了一個查詢:

SELECT `items`.*, 6371*ACOS(COS(RADIANS(51.985103)) AS `distance` 

現在建立一個查詢:

SELECT `items`.*, `6371*ACOS(COS(RADIANS(51.985103))` AS `distance` 

列()把'(單引號)圍繞一切,所以我們得到以下錯誤:

Zend_Db_Statement_Mysqli_Exception 
Mysqli prepare error: Unknown column '6371*ACOS.... etc 

有沒有辦法告訴列不要把公式放在撇號之間?

回答

1

我發現如果公式是作爲Zend_Db_Expr輸入的,一切正常。

$distanceFormula = new Zend_Db_Expr("($earthRadius*ACOS(COS(RADIANS($lat))"); 
$select->columns(array('distance' => $distanceFormula));