Php 在Mysql中向值添加常量并将值更新为结果
我得到了一个MySQL表,它有三列“主键”、“借记卡”和“用户id”,所以现在我想通过在已经存在的值上添加“15”来将借记卡现金值更新为相应的用户id。debit_cash在VARCHAR中,所以我尝试将其转换为int并求和,但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']; /
<?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的列?