0

私の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.5 秒のクエリ時間)。

質問: php 関数の定数を置き換える方法はありますか?

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

たとえば、この例では: '187' と mysql 行の値

 search_result_view.my_ID
4

1 に答える 1

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

しかし、あなたが何をしようとしているのかは、あなたの質問から完全には明らかではありません。

于 2012-12-15T02:51:40.457 に答える