こんにちはCodeigniterエキスパート。クエリをコンパイルするCodeigniter
私はいくつかの関数呼び出しによってQUERYをコンパイルしています。
これが完了すると、もちろんいくつかのデータを取得するためにQUERYを使用します。
各呼び出しは、取得しQUERY
で使用されることを想定しているいくつかの翻訳を返す別の関数を呼び出します。しかし、それは、翻訳funcitonでWHERE条件が私はWHERE条件によって連接されることをのように思えますメインQUERY
private function add_to_asq($field_name, $values)
{
.
.
.
.
$result = array();
foreach($values[$last_level] as $val)
{
foreach($val as $v )
{
$result[] = $this->db->escape($this->asq_value_translate($last_level, $v, $field_name));
}
}
$this->db->where_in(sprintf('%1$s' , $field_name ) , implode(',' , $result));
}
private function asq_value_translate($level, $value_md5 , $field_name)
{
$this->db->select(sprintf('level_%1$d, level_%1$d_value' , $level))
->distinct()
->from('search_options_tree_view')
->where(sprintf('md5(level_%1$d_value) = ' , $level), $value_md5)
->where('field_name' , $field_name);
$q = $this->db->get();
$value_name = sprintf('level_%1$d' , $level);
$row = $q->row(0);
$q->free_result();
return $row->$value_name;
}
にコンパイルし、DBはそれ
エラー番号文句を言う:1054
不明な列 '型' に
SELECT DISTINCT `level_1`, `level_1_value` FROM (`search_options_tree_view`) WHERE
`type` IN ('\'Forhandler\'')
AND md5(level_1_value) = '138be735c55896dbdbea9b6c5d503b6f' AND `field_name` = 'fuel'
ファイル名 'WHERE句を':C:\ WAMP \ WWW \システム\データベース\ DB_driver.php
行番号:330
ご覧のとおりtype
IN( '\' forhandler \ '')は、asq_value_translationには何もありません。
提案がありますか?
私はdbオブジェクトを複製することを考えましたが、最初に尋ねて後で撮影すると考えました。
ありがとう、楽しい時間があります。
私はフレームワークを使用してクエリをアセろばしたいと思っています。しかし、WHEREはこういったグローバルなものだと思われます。実行される前に、どの関数でも操作することができます。 –
しかし、last_query関数を使用すると、where句に対して何が生成されているかを確認し、必要に応じて変更することができます。 – Catfish
ありがとう私はそれを試してみましょう。乾杯 –