Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Kohana3中将表名作为参数传递给数据库查询_Php_Database_Parameters_Kohana - Fatal编程技术网

Php 如何在Kohana3中将表名作为参数传递给数据库查询

Php 如何在Kohana3中将表名作为参数传递给数据库查询,php,database,parameters,kohana,Php,Database,Parameters,Kohana,我有一个复杂的三层查询,我希望将表名作为参数传递。 我使用的代码如下所示: 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 (

我有一个复杂的三层查询,我希望将表名作为参数传递。 我使用的代码如下所示:

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将表名作为参数传递给数据库查询?

需要使用
DB::expr($tableName)
而不是
$tableName

您已经在做
->param(':table',$tableName)
将DB::expr()插入错误的位置。很抱歉