在我的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
答案 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
但是,你的问题并不完全清楚你要做什么。