php - foreach MySql 的替代品

标签 php mysql

我有一个大数组。是否有另一种方法来检查数组中的 $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/

相关文章:

php - 如何安全地将 MySQL 数据库与使用 PHP 的网页链接和使用?

Android上传图片到Mysql

MySQL 最佳实践 : Updating relational tables

PHP - 如何在 MySql 中使用 GeoLite2 IP CSV 数据库?

mysql - 为什么即使表中不存在该列,sql 也会给出结果?

mysql - 不检查数据类型的安全问题

php - 如何将我的网址更改为用户友好的网址

php - 使用php输出一个mp4视频

php - 电子邮件地址验证方法(订阅按钮)

php - 使用 Symfony 检查 Controller 内是否处于 "dev"模式