php - 在php中将从MySQL查询获得的string/val转换为int?

标签 php mysql sql string int

我试图从 MySQL 数据库检索值并将其转换为 int,然后向其添加 3,然后尝试将更新 int 存储到数据库中。我没有收到任何错误或任何内容。我从数据库检索的初始值是5,然后我尝试添加 3 并更新数据库。现在更新的值应该是 8,但它不是,而是 3。我不知道我做错了什么,所以请帮助我。

index.php 中的我的 php 代码如下:

else if ($tag == 'addQuestion'){
                $username = mysql_real_escape_string($_POST['username']);
                $question = mysql_real_escape_string($_POST['question']);
                $tag1 = mysql_real_escape_string($_POST['tag1']);
                $tag2 = mysql_real_escape_string($_POST['tag2']);
                $tag3 = mysql_real_escape_string($_POST['tag3']);
                $time = $_POST['time'];
            $addQu = $db->addQuestion($username, $question, $tag1, $tag2, $tag3,$time);
        if($addQu){
            $q_id = $addQu["id"];
            $addQTA = $db->addQTA($username,$q_id,$question,$tag1,$tag2,$tag3);
            if($addQTA){
                $getKP= $db->getKP($username);
                if($getKP){

                                            //Having trouble at this part
                    $kp = (int)$getKP['karma_points'];
                    $ask_question_points = $kp + 3;

                    $updateKP= $db->updateKP($username,$ask_question_points);
                        if($updateKP){
                            $response["error"] =1;
                            $response["msg"] = "updateKP in AddQuestion Succesfull";
                            echo json_encode($response);
                    }
                    else{
                        $response["error"] =1;
                        $response["error_msg"] = "Error updateKP in AddQuestion";
                        echo json_encode($response);
                        }
                    }
                    else{
                        $response["error"] =1;
                        $response["error_msg"] = "Error inserting getKP in AddQuestion";
                        echo json_encode($response);
                        }
                }
            else{
                $response["error"] =1;
                $response["error_msg"] = "Error inserting QTA";
                echo json_encode($response);
                }
        }else{
            $response["error"] =1;
            $response["error_msg"] = "Error inserting question";
            echo json_encode($response);
            } 
            }

以下是 DB_functions.php 中处理更新查询的函数代码:

public function updateKP($username,$karma_points){
        $result = mysql_query("UPDATE users SET karma_points = '$karma_points' WHERE username = '$username'") or die(mysql_error());
        return($result);
        }

谢谢!!

最佳答案

您应该避免头痛并在一个查询中完成:

$result = mysql_query("UPDATE users SET karma_points = karma_points + $karma_points WHERE username = '$username'") or die(mysql_error());

这会自动将用户 $usernamekarma_points 列的值增加为 $karma_points。无需在 PHP 中进行数学运算并将其发送回 MySQL,只需在 MySQL 中进行即可。

关于php - 在php中将从MySQL查询获得的string/val转换为int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597062/

相关文章:

javascript - 单选按钮的自定义 iCheck 设计可防止单击时输出总价

php - 在 php 中触发 403,以便它显示 ErrorDocument

php - POST 查询错误

SQL Server 2008 IIF 语句似乎未启用

.net - 来自带有事务的 dotnet 的 SQL 脚本

php - 无法发送西里尔语表单数据

php - @-sign 在 Ubuntu 12、php5 和 xdebug 中

php mysql 代码不会回显

MySQL 查询 avg 和 count 大于一个值

java - 如何捕获 "Invalid hex digit"?