0
PHP/MySql的新手 - 我正在通過嘗試使數據庫存儲一些字符串條目來學習。有沒有辦法提醒用戶插入...重複更新條目?
所有工作正常 - 我在我的表單中有三個用戶條目:class
,keywords
,usrstring
它們被添加到我的數據庫沒有問題。
兩個問題,雖然:
#1)這是我使用的MySQL的函數:
$sql = "INSERT INTO `reporting` (class, keywords, usrtext) VALUES (\"$class\", \"$keywords\", \"$usrtext\") ON DUPLICATE KEY UPDATE `usrtext` = \"$usrtext\" ";
但我想一個duplicate key update
只有兩個class
和keywords
匹配的行。不是OR實例,如果class
或keywords
匹配,則該行會更新。這是實現AND實例的正確語法嗎?
#2我通過Ajax後,其發送表單數據重新引導回主索引頁面如下:
$("#formdata").submit(function(e) {
var url = "posted.php"; // the script where you handle the form input.
e.preventDefault(); // avoid to execute the actual submit of the form.
$.ajax({
type: "POST",
url: url,
data: $("#formdata").serialize(), // serializes the form's elements.
success: function(data)
{
window.location.href = 'index.php?=successfullyadded';
alert(data) ;
$("#formdata")[0].reset(); // reset form and clear all hidden inputs
}
});
});
我怎麼能中斷的過程中創建一個警報/提示,以便通知用戶重複條目,並且可以選擇繼續更新條目以取消(讓他們有機會在條目完成之前更改class
或keywords
?
** WARNING **:如果你剛開始學習PHP,請不要學過時['mysql_query'](http://php.net/manual/en/function.mysql-query .php)界面。這很糟糕,並且已經在PHP 7中被刪除了。像[PDO不是很難學的東西](http://net.tutsplus.com/tutorials/php/why-you-should-be-using-php-pdo- for-database-access /)以及[PHP The Right Way](http://www.phptherightway.com/)等指南有助於解釋最佳實踐。確保**你的用戶參數[妥善轉義](http://bobby-tables.com/php),否則你將以嚴重的[SQL注入漏洞](http://bobby-tables.com/ )。 – tadman
所以你會有一個複合鍵(類,關鍵字),對不對? (雖然當然在規範化的環境中,你永遠不會有一個名爲關鍵字的列) – Strawberry
@tadman - 感謝您的警告和參考。我確實在使用'mysqli',並且已經閱讀了有關字符轉義輸入的適當擦除(儘管很多人似乎暗示字符轉義是不夠的)。到目前爲止,我只在xampp localhost環境中練習以保證安全。 – user1837608