0
$params['title']
は文字列で、$params['feed']
は整数です。列の「タイトル」タイプはvarchar
で、列の「フィード」タイプはinteger
です。 PHPコードは次のとおりです。エラーが発生した原因アクティブレコードクラスのwhere句の問題
$this->db->where('title', $params['title']);
$this->db->where('feed', $params['feed']);
$query = $this->db->get('news');
だから、すべてがうまくなり、もちろん...
A Database Error Occurred
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'riots: intense anger after deaths of three young men AND `feed` = '1'' at line 3
SELECT * FROM (`news`) WHERE `title` = Birmingham riots: intense anger after deaths of three young men AND `feed` = '1'
Filename: C:\path\system\database\DB_driver.php
Line Number: 330
必要があり、それは明らかです。それを修正する方法はありますか(アクティブレコードクラスを使用しない点を除けば)? CIの文書を参照しましたが、なぜこの問題が発生したのかはわかりません。
EDIT従って
$this->db->where('title', (string) $params['title']);
そして、他の条項に変更することによって解決
。そして今、他のモデルでも同じエラーが発生します。さて、唯一の解決策は、手動でどこでもvar型を追加することだと思います。
ここで、あなたは '$ params ['title']'とあなたが実行しているcodeigniterのバージョンを割り当てていますか? – jondavidjohn
最初に値は他のモデルで割り当てられます $ data ['title'] = $ item-> title; オブジェクト$ itemはSimpleXMLクラスによって作成されます。そして配列$ dataは、モデルのメソッド(エラーが発生している場所)の引数として渡されます。 CIバージョンは最新の2.0.2です。 – Gediminas
このSimpleXMLクラスの 'title'プロパティは文字列ではありません。 – jondavidjohn