php - 数据未存储在数据库中
问题描述
我正在开发一个小表格,用户可以在其中使用 PayPal 付款进行注册。但问题是付款成功后用户信息没有存储在数据库中。这是插入的代码
$db = new mysqli($dbConfig['host'], $dbConfig['username'], $dbConfig['password'], $dbConfig['name']);
// Assign posted variables to local data array.
$data = [
'item_name' => $_POST['item_name'],
'item_number' => $_POST['item_number'],
'payment_status' => $_POST['payment_status'],
'payment_amount' => $_POST['mc_gross'],
'payment_currency' => $_POST['mc_currency'],
'txn_id' => $_POST['txn_id'],
'receiver_email' => $_POST['receiver_email'],
'payer_email' => $_POST['payer_email'],
'custom' => $_POST['custom'],
];
if(verifyTransaction($_POST) && checkTxnid($data['txn_id'])) {
if(addPayment($data) !== FALSE) {
}
}
function addPayment($data)
{
global $db;
if(is_array($data)) {
$stmt = $db->prepare('INSERT INTO `payments` (txnid, payment_amount, payment_status, itemid, payer_email) VALUES( ?, ?, ?, ?, ?)');
$stmt->bind_param(
'sdsss',
$data['txn_id'],
$data['payment_amount'],
$data['payment_status'],
$data['item_number'],
$data['payer_email']
);
$stmt->execute();
$stmt->close();
return $db->insert_id;
}
return FALSE;
}
解决方案
从付款 INSERT INTO 中删除单引号payments
并将此 itemid 更改为上表值中的 item_number。
推荐阅读
- javascript - 如何将 ReactJS /build 文件夹添加到现有的网站结构
- javascript - Angular @ngrx/store 调度方法将对象属性与自身连接起来
- java - 使用 Spring Boot 测试测试多台服务器
- java - 来自 MS SQL 的 SELECT 语句返回丢失 2-4 天的日期
- python - ValueError:未知求解器内点
- spring - Eclipse 没有显示任何依赖项的搜索结果
- java - 通过从 MobileElement 扩展创建自己的自定义 MobileElement
- directx - IDXGIFactory1::IsCurrent 的作用是什么?
- python - 使用子进程将stderr和stdout从ffmpeg重定向到Python中的文件
- python-2.7 - 无法在 Python 2.7 中将 scimath 安装到自定义目录