Php 在Mysql中向值添加常量并将值更新为结果

Php 在Mysql中向值添加常量并将值更新为结果,php,mysql,Php,Mysql,我得到了一个MySQL表,它有三列“主键”、“借记卡”和“用户id”,所以现在我想通过在已经存在的值上添加“15”来将借记卡现金值更新为相应的用户id。debit_cash在VARCHAR中,所以我尝试将其转换为int并求和,但MySQL中的值仍然没有改变 这是我的密码: <?php if($_SERVER['REQUEST_METHOD']=='POST'){ //Getting values $user_id = $_POST['user_id']; /

我得到了一个MySQL表,它有三列“主键”、“借记卡”和“用户id”,所以现在我想通过在已经存在的值上添加“15”来将借记卡现金值更新为相应的用户id。debit_cash在VARCHAR中,所以我尝试将其转换为int并求和,但MySQL中的值仍然没有改变

这是我的密码:

<?php 
if($_SERVER['REQUEST_METHOD']=='POST'){
    //Getting values 
    $user_id = $_POST['user_id'];


    //importing database connection script 
    require_once('dbConnect.php');

    //Creating sql query 
    $sql = "SELECT cos_details.debit_cash AS debitCash,
            (convert(int, debit_cash)+15) AS updatedDebitCash
            FROM cos_details
            UPDATE cos_details SET debit_cash = '$updatedDebitCash'
            WHERE user_id = $user_id";

    //Updating database table 
    if(mysqli_query($con,$sql)){
        echo 'Updated Successfully';
    }else{
        echo 'Could Not Update Try Again';
    }

    //closing connection 
    mysqli_close($con);
}

似乎您不需要选择,只需要更新

  UPDATE cos_details SET debit_cash = cast( (convert(int, debit_cash)+15) as VARCHAR(20))
  WHERE user_id = $user_id
可能是您的用户id也是一个字符串,因此您应该用引号将该值括起来

  UPDATE cos_details SET debit_cash = cast( (convert(int, debit_cash)+15) as VARCHAR(20))
  WHERE user_id = '$user_id'

您试图在此处执行多重查询。对您的查询使用
mysqli\u error($con)
,您将看到语法错误。可能只是一个小点的重复:Cash通常有一个十进制成分??您确定将其转换为@Fred ii-Esspresso pour moi si vois platA是正确的吗?:让自己更轻松,转储整个表,将列更改为可以进行数学运算的类型,而不是尝试将varchar转换为整数,一次只运行一个查询。我能在这里清楚多少?我甚至说要检查错误,但没有回应。如果要继续当前路线,请使用db模式和示例值编辑问题。它不会更新表中的值@scais@WilliamWilli我觉得我必须说,如果你在数据库中存储一个数字,如果你使用一个合适的数据类型来保存它,它将简化一切。VARCHAR不适合我使用它,因为有时我必须添加布尔值。如果你知道答案,就发帖子吧it@WilliamWilli我的问题很简单,这是您用于用户id的数据类型。。因为该值没有更新(并且您没有错误),这意味着我的答案实际上是正确的,但是where条件不匹配。。所以如果你告诉我的话,我可以试着帮你@WilliamWilli您的数据库中是否有非VARCHAR的列?