0

こんにちは、codeigniter でデータベースのクエリを開始しています。基本的な select ステートメントではすべて正常に動作していますが、SQL 関数を追加した後、すべてがうまくいきません。基本的に、次のように機能するはずの mysql でテキストをプロパーケースする機能があります。

SELECT proper(foo_bar) as foo from foo;

これは次のようなものを返す必要があります:

|Foo    |
|Foo Bar|

アクティブなレコードを適用すると、次のようになると予想されました。

$this->db->select('proper(foo_bar)');
$query = $this->db->get('foo');

まあ、私はまだエイリアシングの部分を知りませんが、今のところこれを解決する必要がありますが、はい、このクエリの後に戻りはありません. CIはそれを次のように読んだと思います

Select 'proper(foo_bar)' from foo

これは明らかに完全に間違っています。ちなみに、次のように手動でクエリを入力したくありません。

 $query = $this->db->query("SELECT proper(foo_bar) as foo from foo");  

それは私の意見では非現実的です。これを解決する方法はありますか?ありがとう!

4

1 に答える 1

1

ドキュメントで述べられているように、バッククォートによるフィールド保護を避けるために、2 番目のパラメーターを渡す必要があります。

$this->db->select('proper(foo_bar) AS propfoo',FALSE);

https://www.codeigniter.com/userguide2/database/active_record.html#select

于 2012-10-28T03:32:52.470 に答える