2011-06-26 18 views
0

ブロックリストに単語がない限り、すべての検索クエリを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); 
} 

?> 

答えて

0

で増加しているため。主キーに自動インクリメントに問題がないことを確認してください。また、重複している可能性があるので、いずれのフィールドでも一意には使用しないでください。

+0

"独特の..を使用しないでください"。何故なの?私はそれが彼が '重複キー'を使っている理由だと思う。 – joakimdahlstrom

0

それはおそらく重複していますし、あなたの「値が」ちょうどあなたのテーブル構造を確認してください1

関連する問題