ブロックリストに単語がない限り、すべての検索クエリをMySQLデータベースに記録する検索スクリプトがあります。ただし、テーブルに3つ以上のエントリがある場合、これ以上許可されません。なぜこれができますか?MySQLデータベースの検索クエリを記録するPHPスクリプトの修正
私のPHPスクリプトは次のとおりです。
<?php
mysql_connect("localhost","username","password");
mysql_select_db("database");
if(!empty($_GET['q'])){
$query=mysql_real_escape_string(trim($_GET['q']));
$searchSQL="SELECT * FROM links WHERE `title` LIKE '%{$query}%' LIMIT 8";
$searchResult=mysql_query($searchSQL);
while ($row=mysql_fetch_assoc($searchResult)){
$results[]="<div class='webresult'><div class='title'><a href='{$row['url']}'>{$row['title']}</a></div><div class='desc'>{$row['description']}</div><div class='url'>{$row['url']}</div></div>";
}
if(empty($results)){
echo 'No results were found';
} else {
echo implode($results);
}
}
$block=array('word', 'word');
if(!in_array($query, $block)){
function logQuery($query){
$query="insert into queries (query) values ('$query') on duplicate key update value=value+1";
mysql_query($query);
}
logQuery($query);
}
?>
"独特の..を使用しないでください"。何故なの?私はそれが彼が '重複キー'を使っている理由だと思う。 – joakimdahlstrom