使用PDO类的PHP和MySQL

使用PDO类的PHP和MySQL,php,mysql,pdo,Php,Mysql,Pdo,我正在尝试更新数据库,这是我的代码 if (isset($_GET['placeorder'])) { include 'includes/db.php'; try { $newBalance = $_POST['balance'] + $_POST['oldbalance']; $sql = 'UPDATE customer SET balance = :balance WHERE id = :id';

我正在尝试更新数据库,这是我的代码

if (isset($_GET['placeorder']))
{
    include 'includes/db.php';

    try
    {
    $newBalance = $_POST['balance'] + $_POST['oldbalance'];
    $sql = 'UPDATE customer SET
            balance = :balance
            WHERE id = :id';
    $s = $pdo->prepare($sql);
    $s->bindValue(':balance', $newBalance);
    $s->execute();
    }
    catch (PDOException $e)
    {
        $error = 'Could not add the new balance for the customer' . $e->getMessage();
        include  'result.php';
        exit(); 

    }
    header('Location: .');
    exit();
我试图做的是更新来自提交表单的客户的余额。我能够从代码中获取值,一直到
$s->execute()
如果我尝试回显值,即
$newBalance
,则在执行该行后将不会显示该值,页面将变为空白。execute语句中出现了一些问题<代码>$s->execute()不允许我的代码继续运行。有什么想法吗?我是不是用错了PDO类。它没有进入“catch”语句。任何帮助都会很好。最终的结果是页面返回到更新余额的起始位置

var\u dump()
两个变量
$\u POST['balance']
&
$\u POST['oldbalance']
。我确信它们是以
string
的形式出现的。类型铸造是解决方案之一。在这种情况下,尝试进行类型转换以对int/float执行加法

$newBalance = (int)$_POST['balance'] + (int)$_POST['oldbalance'];
var\u dump()
两个变量
$\u POST['balance']
&
$\u POST['oldbalance']
。我确信它们是以
string
的形式出现的。类型铸造是解决方案之一。在这种情况下,尝试进行类型转换以对int/float执行加法

$newBalance = (int)$_POST['balance'] + (int)$_POST['oldbalance'];

您只是将一个值绑定到余额,而不是id,您需要一行,如:

$s->bindValue(':id', $id);
在查询中使用它们之前,最好确保设置了
$\u POST['balance']
$\u POST['oldbalance']

$balance = isset($_POST['balance'])? $_POST['balance'] : 0;
$oldbalance = isset($_POST['oldbalance'])? $_POST['oldbalance'] : 0;
$newbalance = $balance + $oldbalance;

如果您没有收到错误,您可能没有错误报告,您可以通过添加
error\u reporting(E\u ALL)来启用它到页面顶部。

您仅将值绑定到余额,而不是id,您需要一行,如:

$s->bindValue(':id', $id);
在查询中使用它们之前,最好确保设置了
$\u POST['balance']
$\u POST['oldbalance']

$balance = isset($_POST['balance'])? $_POST['balance'] : 0;
$oldbalance = isset($_POST['oldbalance'])? $_POST['oldbalance'] : 0;
$newbalance = $balance + $oldbalance;

如果您没有收到错误,您可能没有错误报告,您可以通过添加
error\u reporting(E\u ALL)来启用它显示在页面顶部。

您确定已在上显示错误报告吗?放置
错误报告(E_ALL)在代码的顶部,您确定有错误报告吗?放置
错误报告(E_ALL)在代码顶部,这正是我的问题。这件事我看得太久了。谢谢你的帮助。我确实打开了错误报告功能,但未绑定“id”导致了问题。再次感谢。谢谢你,这正是我的问题。这件事我看得太久了。谢谢你的帮助。我确实打开了错误报告功能,但未绑定“id”导致了问题。再次感谢。谢谢,斯穆尼什,问题是我没有绑定id值。谢谢你花时间。谢谢你,Swarmnesh,问题是我没有绑定id值。谢谢你抽出时间。