2015-04-02 3 views
1

У меня есть следующий код, который добавляет некоторые данные в базу данных через API-интерфейс на стороне сервера. Поле order_number должно быть создано через $ OrderNumberNext, который вычисляется счетчиком (*) + 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 (после ++). –

+0

Кроме того, я попытался изменить это на get_row, а затем вытащить order_num из переменной ($ orderNumberNext-> order_num. Это также не создает то, что мне нужно. –

+0

Любые мысли здесь? Может быть, это настройка в PHP, которая вызывает проблема? Запрос отлично работает в Sequel PRO, но не работает при запуске его из кода. –

Смежные вопросы