Как передать имя таблицы в качестве параметра для запроса к базе данных в Kohana 3 - PullRequest
0 голосов
/ 23 февраля 2011

У меня сложный трехслойный запрос, в котором я хотел бы передать имя таблицы в качестве параметра.Я использую код вроде this:

DB::query(Database::SELECT, 'SELECT 
    SUM(volume) AS `volumeTotal`, 
    MIN(volume) AS `volumeMin`, 
    MAX(volume) AS `volumeMax`, 
    AVG(volume) AS `volumeAverage`, 
    STD(volume) AS `volumeSD`
FROM (
    SELECT TIMEDIFF (DT,CAST( @dt AS DATETIME )) AS Ival, CAST( @dt AS DATETIME ) AS `start` , @dt := DT AS `stop` , `volume`
    FROM ( SELECT @dt := NULL) dt, 
    ( SELECT * FROM  :table WHERE id = :XID) vals
ORDER BY dt ASC) vI')
    ->param(':table', $tableName)
    ->param(':XID', $ID) 
    ->execute();

Для меня не подходит использовать конструктор запросов (и я думаю, что это не оптимальный способ).Конечно, я могу вводить параметры в запрос напрямую, например ".$tableName.", но я думаю, что должен быть более правильный путь.

Вопрос:

Как передать имя таблицы в качестве параметра в запрос к базе данных с помощью Kohana?

1 Ответ

0 голосов
/ 24 февраля 2011

Нужно использовать DB::expr($tableName) вместо $tableName.

...