如何将mysql查询行值传递给php函数

时间:2012-12-15 01:52:15

标签: php mysql

在我的php脚本中我有这个mysql查询:

$sql = "CREATE OR REPLACE VIEW search_best_rates_view AS SELECT *, 
         ".$this->get_rates(187,'2012-12-14','2012-12-18')."
          as my_best_rate FROM search_result_view 
       ";

mysql_query ( $sql );

工作正常(1,5s查询时间)。

问题:有没有办法替换php函数中的任何常量

.$this->get_rates($i,$a,$d)

e.g。在这个例子中:'187'带有mysql行值

 search_result_view.my_ID

1 个答案:

答案 0 :(得分:0)

数据定义语言(DDL)语句(如CREATE OR REPLACE VIEW)在传递给要运行的MySQL服务器时不能包含任何绑定变量。

因此,您可以在PHP(或任何其他客户端语言)中执行任何操作来创建DDL语句。如果您愿意,可以从MySQL表中获取值。但是当您将DDL语句作为查询发出时,它必须是一个干净的文本字符串。

看起来你正试图把这样的DDL放在一起:

 CREATE OR REPLACE VIEW search_best_rates_view AS 
           SELECT *, 
                  123.45 as my_best_rate 
             FROM search_result_view

那会有效。所以会这样:

 CREATE OR REPLACE VIEW search_best_rates_view AS 
           SELECT *, 
                  (SELECT MIN(rate) FROM rates) as my_best_rate 
             FROM search_result_view

但是,你的问题并不完全清楚你要做什么。