Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 如何更新表的特定数据?_Php_Mysql - Fatal编程技术网

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和html制作一个喜欢/不喜欢的东西。因此,因为它对每个博客都使用likes,所以我使用blog ID。我想知道如何更新表中的“likes”,但只使用它的ID更新特定行的“likes”。下面是php脚本:

<?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发送“不喜欢”或“喜欢”。但我同意,我应该使用转义字符串,因为有人可以破解它。