pdo中是否可以使用+ - *或/?
之类的运算符进行查询解决方案是在两者之间放置空格?和运营商 这不起作用
$table01.Amount - ?*?
这有效
$table01.Amount - ? * ?
查询
UPDATE account SET account.Amount = account.Amount - 1000000*0.03 WHERE account.Id = 23;
抛出错误但将此查询放入数据库客户端没有错误
$sqlAccountUpdate="UPDATE $table01
SET
$table01.Amount = $table01.Amount - ?*?
WHERE
$table01.Id = ?;";
try
{
$stmtAccountUpdate = $pdo->prepare($sqlAccountUpdate);
$stmtAccountUpdate->execute([$_POST['new_account_initial_deposit'], $deposit_fee, $accountid]);
}
catch(Exception $e)
{
echo 'Exception -> ';
var_dump($e->getMessage());
}
我得到的错误是由此引起的 这是给出错误的行:
$table01.Amount - ?*?
我知道我可以通过计算预准备语句之前的值并使用1变量而不是在预准备语句中进行计算来解决它。
这是有效的
$initalFee=$_POST['new_account_initial_deposit']*$deposit_fee;
$sqlAccountUpdate="UPDATE $table01
SET
$table01.Amount = $table01.Amount - ?
WHERE
$table01.Id = ?;";
try
{
$stmtAccountUpdate = $pdo->prepare($sqlAccountUpdate);
$stmtAccountUpdate->execute([$initalFee, $accountid]);
}
catch(Exception $e)
{
echo 'Exception -> ';
var_dump($e->getMessage());
}