Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php SQL';插入';正在多次插入该值,而不是仅插入一次_Php_Sql_Insert - Fatal编程技术网

Php SQL';插入';正在多次插入该值,而不是仅插入一次

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['

大家好,我正在制作一个类似的系统,发送给喜欢它和内容的数据库。但事实证明,SQL INSERT语句所做的工作比它应该做的更多。。。它应该保存一行带有用户
帐户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){