2015-04-02 93 views
1

我有以下代碼,它通過服務器端API向數據庫添加一些數據。字段order_number應該通過$ OrderNumberNext創建,它由count(*)+1作爲order_num變量計算。PHP wpdb get_var查詢返回零

但是,在完成此操作後檢查數據庫顯示,這隻會計算爲0(零)。我應該使用不同的函數調用嗎?

function addChartToSet($chartId, $setId){ 
    $chartWithId = $this->db->get_var($this->db->prepare("select id from chords where chord_id=%s",$chartId)); 
    $setWithId = $this->db->get_var($this->db->prepare("select id from sets where set_id=%s",$setId));  

    $orderNumberNext = $this->db->get_var($this->db->prepare("select count(*)+1 as `order_num` from `chords_inside_sets` where `set_id`=%s",$setId)); 

    $this->db->query($this->db->prepare("update sets set `last_updated_time`=NOW() where `set_id`=%s",$setId)); 
    $this->db->query($this->db->prepare("insert into `chords_inside_sets` set `chord_id`=%s , `set_id`=%s, `order_number`= %s",$chartWithId,$setWithId,$orderNumberNext)); 

    return array("last_updated_time"=> $this->getMaxUpdatedTimeForSet($setId), "query"=> $this->db->last_query); 
} 

回答

0

您正在查詢中添加1以提取數據。它不能工作。首先通過SELECT查詢計數,然後在下一行添加一個,如下所示:

$orderNumberNext = $this->db->get_var($this->db->prepare("select count(*) as `order_num` from `chords_inside_sets` where `set_id`=%s",$setId)); 
$orderNumberNext++; 
+0

感謝您的回覆。我試過這個,但它仍然不起作用。它之前返回0,現在它返回1(在++之後)。 – 2015-04-02 15:09:30

+0

此外,我試圖將其更改爲get_row,然後從變量($ orderNumberNext-> order_num中提取order_num。這也不會產生我所需要的。 – 2015-04-02 21:18:15

+0

此處有任何想法嗎?可能是PHP中的設置導致問題?在Sequel PRO中查詢工作正常,但從代碼運行時不起作用。 – 2015-04-16 20:34:36