只喜欢和不喜欢一次php JS mySQL

时间:2019-02-25 16:31:43

标签: javascript php mysql voting

我目前很困惑。我正在尝试为显示的视频添加“喜欢”和“不喜欢”按钮,但是,用户只能喜欢一次,不能多次。我遇到以下错误,

  

注意:mysqli_result类的对象无法转换为int

     

致命错误:mysqli_sql_exception未捕获:SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第1行的'WHERE v_id = '34''附近使用

<?php
session_start();
include "config.php";

if( !empty( $_GET['$v_id'] ) ){

    $vid = $_SESSION['v_id'] = $_GET['$v_id'];

$sql='SELECT video_name FROM video WHERE v_id=?';
    $stmt=$link->prepare( $sql );
    $stmt->bind_param('i', $vid );
    $res=$stmt->execute();
    if( $res ){
        $stmt->store_result();
        $stmt->bind_result( $videoname );
        $stmt->fetch();

        printf('
            <video width="70%%" height="70%%" style="background-color:#585858; border: 4px solid darkorange; border-radius:20px;" controls>
                <source src="uploads/%s" type="video/mp4" id="vid">
            </video>
        ', $videoname );
    }
} else {
    exit('missing ID');
}
$lk = mysqli_query($link, "SELECT likes FROM video WHERE v_id='$vid'");
$likeCount = 0;
$sumlk = ($lk + $likeCount);
$liked = mysqli_query($link, "INSERT INTO video(likes) VALUES('$sumlk') WHERE v_id='$vid'");
?>
<br>
<a href="#" onclick="like(event)"><img src="imageStoring/like.png" style="height:30px;" /></a><?php echo '$liked'; ?>
<img src="imageStoring/dislike.png" style="height:30px;"/>

<?php
$func = <<<EOD
<script type="text/javascript">
function like(event){
'$likeCount' = 1;
}
</script>
EOD;
?>

下面是mySQL,

CREATE TABLE video(
v_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
video_name VARCHAR(225) NOT NULL,
id INT NOT NULL,
FOREIGN KEY user_id(id)
REFERENCES users(id)
ON DELETE CASCADE,
n_views INT,
likes INT,
dislikes INT,
image_name VARCHAR(225) NOT NILL
);

2 个答案:

答案 0 :(得分:1)

mysqli_query返回结果对象。在该结果对象中,您可以使用fetch_assoc()之类的方法来获取您所请求的实际行和列。

答案 1 :(得分:1)

如果要更改值,其中v_id = you_actula值 您应该使用更新而不是插入

   UPDATE video 
   set likes = '$sumlk'
   WHERE v_id='$vid'

任何不应该在sql中使用php var的方法,都应像在第一次选择中那样使用预处理语句和绑定参数