我剛剛開始使用PHP,我想知道是否有人可以提供幫助。 我有這個如果輸入存在,不要插入,否則插入PHP mysql
$sql="INSERT INTO $tbl_name SET date='$mydate' , event='$myevent'";
$result=mysql_query($sql);
我需要知道如何使它看是否存在事件,如果確實如此,我需要它做什麼,如果它不那麼插入它!
我剛剛開始使用PHP,我想知道是否有人可以提供幫助。 我有這個如果輸入存在,不要插入,否則插入PHP mysql
$sql="INSERT INTO $tbl_name SET date='$mydate' , event='$myevent'";
$result=mysql_query($sql);
我需要知道如何使它看是否存在事件,如果確實如此,我需要它做什麼,如果它不那麼插入它!
將它分成2個查詢:
1)檢查事件是否存在。如果是,則不做任何事情,否則插入新事件
2)繼續您的查詢。這種方式將您的數據
嘗試在事件將allays存在:
$query = mysql_query("SELECT $myevent from $tbl_name ")
$rows = mysql_num_rows($query)
if ($num_rows > 0) {
// do nothing
}
else {
$sql = "INSERT INTO $tbl_name SET date='$mydate' , event='$myevent'";
$result = mysql_query($sql);
}
當您想要在找到重複密鑰時更改值時,使用'ON DUPLICATE KEY UPDATE'。這個問題表明他希望它什麼都不做。在這種情況下,'INSERT IGNORE'是適當的MySQL語法。另外,'ON DUPLICATE KEY UPDATE'需要一個表達式來遵循它來達到我的理解,以便在條件滿足時指定要更新的列。 –
@ wes.hysell:已更新。 –
這是可以通過MySQL單獨完成的事情。
安裝在您的表運行以下MySQL命令的事件列的唯一關鍵:
CREATE UNIQUE INDEX `i_event` ON `TABLE_NAME_GOES_HERE` (`event`);
欲瞭解更多信息:http://dev.mysql.com/doc/refman/5.0/en/create-index.html
這樣做對每一個可能的表,你期望在看$ tbl_name變量。
然後,改變你的PHP查詢:
$sql="INSERT IGNORE INTO $tbl_name SET date='$mydate' , event='$myevent'";
$result=mysql_query($sql);
有關INSERT更多信息,可忽略:http://dev.mysql.com/doc/refman/5.5/en/insert.html
INSERT忽略根本,因爲它指出... ...它會嘗試插入行,除非它失敗驗證(在這種情況下,您從聲明HAS的唯一索引)。
您可以使用'INSERT IGNORE':http://stackoverflow.com/a/1361368/945775 – AgmLauncher
myevent在哪裏?從數據庫或輸入? –