phpとmysqlで「あいまい検索」をしたいです。
phpとmysqlで「あいまい検索」をしようと思い、下記サイトを参考にしましたが、
http://d.hatena.ne.jp/akihito_sado/20120602/p1
PDOを使ってlikeデータを抜き出したい場合、bindParamを使うらしいですが、
http://rasukaru55.sitemix.jp/or_kensaku.php
下記の場合どう書き直すべきでしょうか?
打ち方が悪いのか、うまく作動しません。
教えてください。
※bindParamを使えばSQLインジェクション対策になっていると言う事でしょうか?
<html>
<head></head>
<body>
<?php
//POST送信されたデータを$text1へ
$text1 =@$_POST["text1"];
//SQL(テーブルから列を抽出する
$sql ="SELECT 列名 FROM 表名 ";
//キーワードが入力されているときはwhere以下を組み立てる
if (strlen($text1)>0){
//受け取ったキーワードの全角スペースを半角スペースに変換する
$text2 = str_replace(" ", " ", $text1);
//キーワードを空白で分割する
$array = explode(" ",$text2);
//分割された個々のキーワードをSQLの条件where句に反映する
$where = "WHERE ";
for($i = 0; $i <count($array);$i++){
$where .= "(列名 LIKE '%$array[$i]%')";
if ($i <count($array) -1){
$where .= " AND ";
}
}
//別カラムも同じ検索したい
$where2 = " OR ";
for($i = 0; $i <count($array);$i++){
$where2 .= "(2列名 LIKE '%$array[$i]%')";
if ($i <count($array) -1){
$where2 .= " AND ";
}
}
}
?>
<form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>">
<table>
<tr>
<td><input type="text" name="text1"></td>
<td><input type="submit" value="検索" name="sub1"></td>
</tr>
</table>
</form>
<?php
//組み立てたSQL分を表示する
echo "<p>組み立てたSQL分: ".$sql.@$where.@$where2;
?>
</body>
</html>