PR

[CakePHP] 検索機能

CakePHPで簡単に検索する方法。。。うーん。。。

使い方

  • $this->Model->findByFieldName($FieldNameSearchWord)基本
  • $this->Model->findByIdAndName($id, $name)も可
  • $this->Model->findByIdOrName($id, $name)も可

スポンサードリンク

注意など

  • いくつも続けて書く事ができる(findByNameOrTitle([KEYWORD]))
  • ANDとORは混在できない
  • PHP4とPHP5で書き方が違うらしい

あいまい検索はできない

※あいまい検索(LIKE %KeyWord%)はSQLインジェクション対策でNGらしい。発行されるSQLは以下のとおりなので。

SELECT
 `Item`.`id`,
 `Item`.`group_id`,
 `Item`.`name`,
 `Item`.`item_group_id`,
 `Item`.`created`,
 `Item`.`updated`,
 `ItemGroup`.`id`,
 `ItemGroup`.`group_id`,
 `ItemGroup`.`name`,
 `ItemGroup`.`created`,
 `ItemGroup`.`updated`
FROM
 `prefix_items` AS `Item`
LEFT JOIN `prefix_item_groups` AS `ItemGroup`
ON (`Item`.`item_group_id` = `ItemGroup`.`id`)
WHERE
 `Item`.`name` = '%test'
LIMIT 1

参考文献

コメント