我需要插入記錄,但如果記錄存在,請替換。以下是我目前正在使用:mySQL如何更新和替換
$sessionDate = date("Y-m-d H:i:s");
foreach($tmpVP as $sessionVP) {
$res = mysql_query("INSERT INTO sessions
(sessionID,sessionDate,sessionVS,sessionVP)
VALUES('$sessionID','$sessionDate','$sessionVS',
'$sessionVP')") ;
}
我真正需要的是更新匹配sessionID
,sessionVS
,並sessionVP
任何記錄,並插入不匹配的新記錄。
編輯:
表定義
CREATE TABLE `sessions` (
`ID` bigint(20) NOT NULL auto_increment,
`sessionID` varchar(36) NOT NULL,
`sessionDate` datetime NOT NULL,
`sessionUser` bigint(20) NOT NULL,
`sessionVS` varchar(255) NOT NULL,
`sessionVP` bigint(20) NOT NULL,
`reserved` int(11) NOT NULL,
PRIMARY KEY (`ID`),
KEY `ID` (`ID`)
) ENGINE=MyISAM AUTO_INCREMENT=88 DEFAULT CHARSET=utf8
會話ID,sessionVP和sessionVS不是唯一的。示例:
sessionID sessionDate sessionUser sessionVS sessionVP
0t1m58q9ktejuhqlrjqglcoia0 2010-06-20 09:20:53 0 111111 144268736
0t1m58q9ktejuhqlrjqglcoia0 2010-06-20 09:20:53 0 111111 144268819
0t1m58q9ktejuhqlrjqglcoia0 2010-06-20 09:20:53 0 111111 144268880
所以,如果我有0t1m58q9ktejuhqlrjqglcoia0
,111111
和`144268880' 一個新的紀錄:我需要更新列#3,而不是添加一行4#的。
正如馬克·比爾斯建議的那樣,檢查是否有消毒輸入。 'mysql_real_escape_string' – DrColossos 2010-06-20 13:55:09
請發表您的表格定義。 'SHOW CREATE TABLE sessions' – 2010-06-20 14:06:33