php - 使用 PHP/MySQL 确保唯一行

标签 php mysql

我有以下代码,在运行时应该更新羊女王佩内洛普女王陛下的“受害者”表(老实说,这是为某人工作的),但是每次执行代码时,它都会添加所有新的排一遍。我很确定我已经对此进行了防范,但我想没有。我在这里做错了什么?

require_once 'victims.php';

 foreach( $victims as $vic )
 {
     $vic = mysql_real_escape_string($vic);

     if(!(mysql_query("
                      SELECT * FROM victims
                      WHERE ".$vic
                     )))
     {
         mysql_query("
                     INSERT INTO victims
                     (victim, amount) 
                     VALUES( '".$vic."', 0)
                    ");
     }

 }

最佳答案

您需要将第一个查询的 where 子句更改为以下内容:

WHERE victim = $vic

此外,请考虑使用绑定(bind)变量,因为这将保护您的代码免受 SQL 注入(inject)攻击。

关于php - 使用 PHP/MySQL 确保唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3527214/

相关文章:

mysql - mysql-connector-java jar 是什么意思?

php - 如何使用隐藏字段进行多个表单提交

php - 如果数据库中的 url 匹配,如何将字符串 "name"分配并输出到 PHP 中的 $query

php - 使用 PHP imap 获取电子邮件会弄乱内联嵌入式图像

php - Laravel 备份错误上传大备份到 s3

php - mysqli - fatal error

mysql - 监控 MySQL slave 状态

mysql - 排除子查询返回需要互斥的结果的记录

php - 如何从命令行同步 FTP 目录?

javascript - 执行 onclick 时获取意外 token