我在做節目與MySQL和PHP面臨的一個問題... 看,我想我的搜索查詢保存到數據庫中,, 參見該例子中PHP/MySQL的插入上重複鍵更新,如果CURDATE()的比賽,否則使新條目
搜索#1 => 20次日期=> 2013年4月26日
#1找遍=>上日期10次=> 2013年4月27日
搜索#1 => 50 times on date => 2013-04-28
格式不matter..Actually我要救我的搜索查詢,如果更改日期.. 如果日期得到相匹配,以便應更新時間+ 1
看到這個代碼,,
<?php
$keyword = null;
$date = null;
if (!empty($_GET['s'])) {
$keyword = stripslashes($_GET['s']);
$date = date("Y-m-d");
try {
$objDb = new PDO('mysql:dbname=search;charset=UTF-8', 'root', '');
$check = "SELECT *
FROM `search1`
WHERE `keyword` = '$keyword%'
AND `date` = CURDATE() ";
if (!empty($check))
{
$sql ="UPDATE `search1`
SET `times` = `times` + 1
WHERE `keyword` = '$keyword%'
AND `date` = CURDATE()";
}
else
{
$sql = "INSERT INTO `search1` (`keyword`, `date`) VALUES (:keyword, :date)";
$statement = $objDb->prepare($sql);
$statement->execute(array(':keyword' => $keyword, ':date' => $date));
}
} catch(PDOException $e) {
echo $e->getMessage();
}
}
?>
它不工作..有些事情是錯誤的..有人可以告訴我什麼是錯的。 我無法使用主鍵。
你什麼錯誤?從我看到'UPDATE'部分永遠不會去數據庫。另外,如果需要使用相等運算符進行比較,則需要將'keyword'與'LIKE'進行比較,或者去除「%」。 – a1ex07 2013-04-26 16:46:18
實際上它不會保存數據庫中的數據如果我嘗試在代碼中使用@ a1ex07 WHERE關鍵字='$關鍵字%'行如果我使用正常值WHERE'關鍵字='印度'所以它只是找到關鍵字印度在數據庫中,只是更新時間值+ 1 ..添加此代碼後,如果(!空($檢查))這個程序還有一件事是不保存數據庫中的新條目... – Kapil 2013-04-26 17:18:42
'WHERE keyword ='India %''正在尋找字符串「印度%」。 'WHERE關鍵字LIKE'印度%''正在尋找以「印度」開頭的字符串... – a1ex07 2013-04-26 17:25:29