Ошибка синтаксиса MYSQL - функция Codeigniter для расчета стоимости - PullRequest
0 голосов
/ 12 января 2012
function stationcost($station1,$station2)
{

    $data = array();


    $this->db->select('Zone')->from('station_zone')->where('Station', $station1);
    $Q = $this->db->get();

    $this->db->select('cost')->from('zone_cost')->where('zone', $Q);
    $query = $this->db->get();

    if ($query->num_rows() > 0)
    {
    foreach ($query->result() as $row)
    {
    $data = $row->Cost;
    return $data;
    }
} 
}

Если я заменим $ Q на целое число, функция будет работать правильно.Мне еще нужно добавить еще одну станцию ​​к минусу разницы, чтобы вычислить разницу зон

Преобразование имен в зоны'calculcated figure';

Мое сообщение об ошибке:

A Database Error Occurred

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3

SELECT `cost` FROM (`zone_cost`) WHERE `zone` =

Filename: models/station_model.php

Line Number: 59

Я пробовал это

$this->db->select('Zone')->from('station_zone')->where('Station', $station2);
    $S2 = $this->db->get();

     $this->db->select('Zone')->from('station_zone')->where('Station', $station1);
    $S1 = $this->db->get();

    $Q = $S2 - $S1;

Ответы [ 2 ]

2 голосов
/ 12 января 2012

Проблема в том, что переменная $Q не содержит допустимого значения, возможно потому, что значение, переданное в $station1, не существует в базе данных.Я бы подумал, что CI будет противостоять этому, по крайней мере, используя пустую строку в кавычках, но, очевидно, нет.

Вам нужно проверить, что $Q содержит разумное значение, прежде чем передать его в where().Например, другая проверка num_rows() скажет вам, нашел ли первый запрос что-либо.

Кроме того, вам нужно передать данные поля из $Q, а не только из объекта.Так что в вашем случае, $Q->row()->Zone.

0 голосов
/ 12 января 2012

$Q - это объект, который имеет несколько полей, в данном случае только одно поле: Zone. Пожалуйста, проверьте Результаты запроса CodeIgniter

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...