私はvtigerのカスタマイズに取り組んでいます。
UI を変更しましたが、mysql クエリが実行される場所を知りたいです。
すべてのクエリを実行するための共通関数はありますか?
すべてのページで呼び出す1つの関数を取得しました$this->database->Execute($sql);
クエリの正確な機能やフローのしくみを誰か教えてください。
前もって感謝します
vtiger のクエリはさまざまなパスを通過する場合がありますが、mysql を使用する場合、すべての最後の場所は次のとおりです。
{Vtiger のパス}\adodb\drivers\adodb-mysql.inc.php
function _query($sql,$inputarr)
すべてのクエリをログに記録することもできます
function _query($sql,$inputarr)
{
$hl = fopen("my_log.sql","a+");
fwrite($hl, "--------"."\n".$sql."\n");
fclose($hl);
return mysql_query($sql,$this->_connectionID);
}
my_log.sql は vtiger ルート ディレクトリに作成されます。また、vtiger には独自のログがありますが、私は私のほうが好みです。
言及する別のポイント:
主に vtiger は pquery という名前の組み込み関数を使用します。それを理解するために、この機能を実行しないことをお勧めします。ほとんどの場合、呼び出された pquery 関数のチェーンには 3 つ以上のメンバーがあります。しかし、クエリがどのように行われるかを調べる価値があると思います。pquery が仕事をする入力を書くだけです!