我目前很困惑。我正在尝试为显示的视频添加“喜欢”和“不喜欢”按钮,但是,用户只能喜欢一次,不能多次。我遇到以下错误,
注意: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
);
答案 0 :(得分:1)
mysqli_query
返回结果对象。在该结果对象中,您可以使用fetch_assoc()
之类的方法来获取您所请求的实际行和列。
答案 1 :(得分:1)
如果要更改值,其中v_id = you_actula值 您应该使用更新而不是插入
UPDATE video
set likes = '$sumlk'
WHERE v_id='$vid'
任何不应该在sql中使用php var的方法,都应像在第一次选择中那样使用预处理语句和绑定参数