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

问题描述 投票:0回答:2

我目前难以解决问题。我正在尝试为显示的视频添加喜欢和不喜欢的按钮,但是,用户只能喜欢它一次而不是多次。我收到以下错误,

注意:类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
);
javascript php mysql voting
2个回答
1
投票

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


1
投票

如果要更改v_id = you_actula值的值,则应使用更新而不是插入

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

任何你不应该在sql中使用php var的方法你应该使用预备语句和绑定参数,就像在你的第一个选择中一样

© www.soinside.com 2019 - 2024. All rights reserved.