0
即時通訊嘗試記錄發生在我的網站上的搜索。當有人搜索我想先檢查的數據庫時,如果它之前已被搜索過。如果它沒有提交到數據庫,則將搜索次數增加1次。選擇插入,如果不存在添加或更新
即時獲取的問題是,您隨時可以搜索更新所有記錄的搜索項。我認爲,因爲我沒有設置ID。我怎麼能在第一個查詢中獲得搜索項的id,並在第二個查詢中將id作爲變量傳遞,因此它只更新與該id相關的searchterm?
$result = mysql_query("SELECT * FROM wss_search WHERE searchterm ='$trimmed' ");
if(mysql_num_rows($result) > 0) {
mysql_query("UPDATE wss_search SET count = count+1 WHERE searchterm = '$trimmed' ");
}
else
{
mysql_query("INSERT INTO wss_search (id, searchterm, count) VALUES ('NULL', '$trimmed', '1') ");
}
任何幫助非常感謝。
即時通訊也知道我應該使用mysqli,但其餘的軟件尚未更新到mysqli呢。
當你瀏覽你的代碼並更新它時,你可能想要將這些部分碰撞到'mysqli'。你可以並行運行它們。這看起來恐怖不安全。你確定**你的用戶參數是[妥善轉義](http://bobby-tables.com/php)? – tadman 2014-09-12 17:28:10
除此之外,真的不安全...爲什麼不只是將第一個select選擇爲'SELECT id FROM wss_search' .. ..然後$ result等於該id ..然後將結果傳遞到第二個查詢中的WHERE WHERE id ='$ result [0]'和searchterm ='$ trimmed'' – 2014-09-12 17:36:24
請閱讀:http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php和http ://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – Pang 2014-09-13 09:42:17