Php 如何更新表的特定数据?
我正在用php和html制作一个喜欢/不喜欢的东西。因此,因为它对每个博客都使用likes,所以我使用blog ID。我想知道如何更新表中的“likes”,但只使用它的ID更新特定行的“likes”。下面是php脚本:Php 如何更新表的特定数据?,php,mysql,Php,Mysql,我正在用php和html制作一个喜欢/不喜欢的东西。因此,因为它对每个博客都使用likes,所以我使用blog ID。我想知道如何更新表中的“likes”,但只使用它的ID更新特定行的“likes”。下面是php脚本: <?php require 'init.php'; $rating = $_GET['rating']; $postid = $_GET['id']; if ($rating = "like") { $sql = " "; } if ($ratin
<?php
require 'init.php';
$rating = $_GET['rating'];
$postid = $_GET['id'];
if ($rating = "like") {
$sql = "
";
}
if ($rating = "dislike") {
$sql = "
UPDATE
posts
SET
dislikes = dislikes+1
WHERE
id = $postid
";
}
?>
更新查询似乎不是这里的问题,主要问题是if语句,其中您没有使用比较运算符,而是使用赋值运算符 语句:
如果($rating=“like”)
将值“like”
赋值给变量$rating
,则它不会将$rating
与值“like”
进行比较,我认为这是您希望它做的
需要注意的其他几个“主要”问题是,您对SQL注入攻击非常开放。既然您在评论中提到您正在使用mysql\u
函数,那么您至少希望使用mysql\u real\u escape\u string
函数。e、 g
$rating = mysql_real_escape_string($_GET['rating'], $con); // assuming $con is your MySQL Connection
$postid = mysql_real_escape_string($_GET['id'], $con);
另一个同样重要的注意点是,mysql\uu
函数已被弃用。你绝对应该考虑使用./p>.
第三点也是最后一点要注意的是,如果您的评分是
“like”
,那么查询是空的。希望您在调用mysql\u query
之前检查empty
属性,此处未显示该属性。这里的问题似乎不是更新查询,主要问题是您的if语句,您没有使用比较运算符,而是使用赋值运算符
语句:如果($rating=“like”)
将值“like”
赋值给变量$rating
,则它不会将$rating
与值“like”
进行比较,我认为这是您希望它做的
需要注意的其他几个“主要”问题是,您对SQL注入攻击非常开放。既然您在评论中提到您正在使用mysql\u
函数,那么您至少希望使用mysql\u real\u escape\u string
函数。e、 g
$rating = mysql_real_escape_string($_GET['rating'], $con); // assuming $con is your MySQL Connection
$postid = mysql_real_escape_string($_GET['id'], $con);
另一个同样重要的注意点是,mysql\uu
函数已被弃用。你绝对应该考虑使用./p>.
第三点也是最后一点要注意的是,如果您的评分是
“like”
,那么查询是空的。希望您在调用mysql\u query
之前检查empty
属性,此处未显示该属性。不过,我犯了一个新错误。我忘了添加“mysql\u查询($sql)”。谢谢你的帮助@詹姆斯勒。但Vinodadhikary仍然正确:当您应该使用=
时,您在if语句中使用=
。注意这一点,因为就目前情况而言,if语句总是返回true。不,它们也返回false。单击链接时,is发送“不喜欢”或“喜欢”。但我同意,我应该使用转义字符串,因为有人可以破解它。不过,我犯了一个新手错误。我忘了添加“mysql\u查询($sql)”。谢谢你的帮助@詹姆斯勒。但Vinodadhikary仍然正确:当您应该使用=
时,您在if语句中使用=
。注意这一点,因为就目前情况而言,if语句总是返回true。不,它们也返回false。单击链接时,is发送“不喜欢”或“喜欢”。但我同意,我应该使用转义字符串,因为有人可以破解它。