使用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值。谢谢你抽出时间。