[PHP]PDO、2つ以上の項目からLIKE検索

公開日: : 最終更新日:2015/01/08 Web制作

Book
データベースからPDOを使ってデータを抜き出したい!
そして「bindParam」で安全に検索しよう。そうしよう。

しかし、見事にハマりました。/(^o^)\

解決方法はこちら!

$pdo = new PDO('sqlite:users.db'); // DBを設定
// クエリ設定
$q = htmlspecialchars($_POST['q']); //クエリを入力
$q = str_replace(" ", " ", trim($q));
$words = explode(" ",$q);

// 解析
$tmp = [];
$tmp2 = [];
$wd = [];
$i = 0;
foreach($words as $word)
{
if(!empty($word))
    {
        $tmp[] = " content LIKE :word".$i." ";
        $tmp2[] = " title LIKE :word".$i." ";
        $wd[] = '%'.$word.'%';
        $i++;
    }
}

// SQL
if(count($tmp) > 0)
{
    $sql = "SELECT * FROM article WHERE (".implode("AND",$tmp).") OR (".implode("AND",$tmp2).") ORDER BY count DESC";
    $search_sql = $pdo->prepare($sql);
    foreach($wd as $key => $word){
        $search_sql->bindParam(':word'.$key, $word);
    }
    $search_sql->execute();
    // while
    while($Article = $search_sql->fetch(PDO::FETCH_ASSOC))
    {
        // 表示
    }
}

これの重要な点は18行目の「%検索文字%」にしているところです。

$wd[] = '%'.$word.'%';

そうすれば簡単に解決可能でした!

Twitter(@R_farms)でブログの更新情報をお伝えしています。
フォローしていただけると嬉しいです!

このカテゴリの記事

PHP5.5から使える暗号化「password_hash」を「password_compact」を使って以前のバージョンで利用する

PHP最高の暗号化法としてPHP5.5から使える「password_hash」があります。

記事を読む

独自ドメイン取得

ねんがんの どくじどめいんを しゅとくしたぞ!( ^^) 「http://rei-farms.

記事を読む

[PHP]まとめ読みをPSRで改良する(4)

まとめ読みをPSRで改良する(3)から約一週間。 こんがらがっていた頭の中がすっきりして、

記事を読む

[PHP]まとめ読みをPSRで改良する(3)

(2)の記事から「PDO」を使い、データの通信をオブジェクト化しました。 password_h

記事を読む

知らなかった!「while」と「do while」の違い

Perl→PHPを独学でやって現在C言語をやってます。 「do{ ~ }while( ~ );

記事を読む

[PHP]「Notice: Undefined variable」および「Notice: Undefined index」

Notice: Undefined variable: disp in C:\xampp\htdoc

記事を読む

まとめ読み(matomeyomi ver 1.0)公開開始

「2ちゃんねるのまとめサイト」のまとめサイトなど、ブログのまとめサイトが作れる、まとめ読み(mato

記事を読む

まとめ読み バージョン1.1.0のリリース

フリーソフト「まとめ読み」バージョン1.1.0のリリースを行いました。 まとめ読み ダウンロー

記事を読む

まとめ読み バージョン1.1.1のリリース

フリーソフト「まとめ読み」バージョン1.1.1のリリースを行いました。 まとめ読み ダウンロー

記事を読む

4e2b692ff41ba051a5c42cac01e133dc

見よう見まねでGitHubでmatomeyomiを公開する

「GitHub」をエンジニア用のSNSと聞いたのではじめてみました。 理由は「他人のコードが見たい

記事を読む

jon-tyson-268886-unsplash
本当に「できないこと」?

「できないこと」、気にしていませんか? 例えばできないことを「地

yannis-papanastasopoulos-586848-unsplash-min
あなたとは違うんです

就職活動開始の時期ですね。 今日は気になった記事「志望動機「IT

指示待ち人間の作り方

「指示待ち人間ばかりで困る」と思いませんか? さて、それをど

あなたの仕事は楽しいですか?

あなたの仕事は楽しいですか? ・・・いきなりなんだよと思った

始まりと終わり

終わりを決めましょう! 皆様、お久しぶりです。 2018年

→もっと見る

PAGE TOP ↑