2014-09-26 11 views
-3

我的問題是我無法將數據保存在數據庫中保存,這裏是代碼無法在數據庫

$database =& JFactory::getDBO(); 
$sql = "UPDATE #__comp_rate SET total = total + 1, point = point + $rate_d WHERE store='".intval($_GET['id'])."'"; 
echo $sql; 
$database->setQuery($sql); 

的部分回聲的結果是:

" point = point + 4 WHERE store='170'4" 

它應該是:

"UPDATE jos_com_rate SET total = total + 1, point = point + 4 WHERE store='170'" 
+0

仍不能解決問題..這是有點奇怪.. – 2014-09-26 13:15:12

+0

你能'回聲$ _GET [」 id']'並分享結果? – Mureinik 2014-09-26 13:16:15

+0

什麼是'#__ comp_rate'?一個常數? – asprin 2014-09-26 13:16:16

回答

0

我不是的Joomla如何處理很多事情的忠實粉絲,但他們實現其查詢對象有點像Zend曾經這樣做過。我不認爲Joomla是非常好,直接SQL反正這樣更好地利用他們的編譯查詢生成器:

$query = $db->getQuery(true); 
// Fields to update. 
$fields = array(
    $db->quoteName('total') . ' = ' . $db->quoteName('total') . '+1' , 
    $db->quoteName('point') . ' = ' . $db->quoteName('point') . '+' . $db->quote($rate_d) , 
); 
// Conditions for which records should be updated. 
$conditions = array(
    $db->quoteName('store') . ' = ' . $db->quote($_GET['id']), 
); 
$query->update($db->quoteName('#__comp_rate'))->set($fields)->where($conditions); 
$db->setQuery($query); 
$result = $db->query();