Php SQL';插入';正在多次插入该值,而不是仅插入一次
大家好,我正在制作一个类似的系统,发送给喜欢它和内容的数据库。但事实证明,SQL INSERT语句所做的工作比它应该做的更多。。。它应该保存一行带有用户Php SQL';插入';正在多次插入该值,而不是仅插入一次,php,sql,insert,Php,Sql,Insert,大家好,我正在制作一个类似的系统,发送给喜欢它和内容的数据库。但事实证明,SQL INSERT语句所做的工作比它应该做的更多。。。它应该保存一行带有用户帐户id的内容,内容应该是屏幕截图id。但是,它多次插入相同的值,如下所示: id |帐户|屏幕截图| id 一、二、十五 二、二、十五 三、二、十五 4.| 2 | 15 | 这只是一个示例,下面是我在php中使用的实际代码: <?php include('connect.php'); $acc_id = $_POST['
帐户id
的内容,内容应该是屏幕截图id
。但是,它多次插入相同的值,如下所示:
id |帐户|屏幕截图| id
一、二、十五
二、二、十五
三、二、十五
4.| 2 | 15 |
这只是一个示例,下面是我在php中使用的实际代码:
<?php
include('connect.php');
$acc_id = $_POST['acc_id']; //value = 2
$id = $_POST['id']; //value = 15
if($id && $acc_id != 0){
$count = mysqli_num_rows(mysqli_query($connect, "SELECT `id` FROM `screenshot_votes` WHERE `account_id` = '$acc_id' AND `screenshot_id` = '$id';"));
if($count == 0){ //checking if there is already a vote with those values
mysqli_query($connect, "INSERT INTO `screenshot_votes` (id,account_id,screenshot_id,vote) VALUES (NULL,'$acc_id','$id','2');");
//values being insert above
}
$row = mysqli_num_rows(mysqli_query($connect, "SELECT `vote` FROM `screenshot_votes` WHERE `screenshot_id` = $id AND `vote` = 2;"));
echo $row;
}
?>
所以。。。我不确定脚本的其余部分是否正确,但我在google上更深入地寻找更多答案,发现了
unbind()
,它为我提供了onclick函数:
o.unbind().on("click",".vote",function(e){
我不确定我在这里发布这个问题的方式是否正确,但如果不是,有人能告诉我哪里出了问题吗?字段
帐户id
和屏幕截图id
的数据类型是什么?当用户提交的数据未经验证就被允许接近数据库时,你就成了SQL注入攻击的靶子。一旦用户提交的数据经过验证,在查询中使用它时应该使用准备好的语句。account\u id
和screenshot\u id
都是长度为11的数字整数。当我点击图片时,php代码运行,但是“if($count==0){}”是否应该默认阻止第二次插入?
o.unbind().on("click",".vote",function(e){