我有一个大数组。是否有另一种方法来检查数组中的 $value
是否存在于 MySql 表 vote
中,如果不存在,则将 $value
插入 投票
。这就是我目前正在做的。有没有更好的方法?
foreach($rowids as $value) {
$select = mysql_query("SELECT voteid FROM vote WHERE username='$username' AND voteid='$value' LIMIT 1",$this->connect);
if(mysql_num_rows($select)==0) {
$insert = mysql_query("INSERT INTO vote VALUES ('','$value','$username')",$this->connect);
}
}
最佳答案
如果你把 UNIQUE INDEX在 (value,username)
然后你可以使用 INSERT IGNORE :
INSERT IGNORE INTO vote (foo,voteid,username) VALUES ('','$value','$username')
添加唯一索引:
ALTER TABLE vote ADD UNIQUE INDEX idx (voteid,username)
如果 vote
中有违反 UNIQUE INDEX 的“重复”行,这将失败。删除重复行并同时添加唯一索引:
ALTER IGNORE TABLE vote ADD UNIQUE INDEX idx (voteid,username)
关于php - foreach MySql 的替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7762144/