一尘不染

mysql数据库插入将所有ID更改为4294967295

mysql

我的数据库确实发生了一些奇怪的事情。我正在使用PHP将数据插入数据库中,并且在过去的两年中我一直在这样做,没有任何问题。当客户在我的网站上付款时,我会将交易中的所有数据存储在数据库中。每个交易都有一个唯一的“
transaction_id”。当我将付款信息插入数据库时​​,除“ transaction_id”外,所有信息均已正确插入。所有交易均被赋予“
4294967295”的“ transaction_id”。所以我做了一些测试。这是我所做的:

1)我在屏幕上回显了“ transaction_id”,看会怎么说。结果是,被回显的“ transaction_id”是正确的。它不是重复的“
4294967295”。但是,当我查看数据库时,它显示为“ 4294967295”。

2)这次,我决定将查询回显到Web浏览器。查询是正确的。在查询中,查询中有正确的“ transaction_id”。但是,当我查看数据库时,它显示为“
4294967295”。

我在3个不同的页面上可以让客户付款。所有3个页面均于2012年4月6日开始执行此操作。所有这些页面均未进行任何修改。我已经超过2年没有修改这些页面了。任何帮助是极大的赞赏!

$query = "INSERT INTO payments (customer_id, transaction_id, invoice_number, authorization_code, subscription, subscription_id, avs_result, cvv_result, amount, full_tuition, payment_date, ip_address) VALUES ({$_SESSION['customer_id']}, {$_SESSION['transaction_id']}, {$_SESSION['invoice_number']}, '{$_SESSION['authorization_code']}', '{$_SESSION['subscription']}', {$_SESSION['subscription_id']}, '{$_SESSION['avs_result']}', '{$_SESSION['cvv_result']}', {$_SESSION['amount']}, {$_SESSION['full_tuition']}, '{$_SESSION['payment_date']}', '{$_SESSION['ip_address']}')" ;
$result = mysqli_query($dbc, $query) OR die ('<p>There was an error with the INSERT payments query.: ' . mysqli_error($dbc) . '<br />Query:' . $query . '</p>') ;

echo '<p>Transaction ' .  $_SESSION['transaction_id'] . ' has been <font color="green">APPROVED</font> by the system.</p>' ;

echo '<br /><br />' ;

echo '<p>Below is a summary:</p>' ;
echo '<p>Transaction ID: ' .  $_SESSION['transaction_id'] . '<br />
Payment Method: XXXX<br />
Amount: $' . $amount . '<br />
Customer Name: ' . $_SESSION['first_name'] . ' ' . $_SESSION['last_name'] . '<br />
</p>' ;

echo "<p>Note: Please do NOT click the browser's Back button to enter a new transaction.</p>" ;


echo $query ;

阅读 500

收藏
2020-05-17

共1个答案

一尘不染

您的人数大于数据库中可以处理的字段…

4294967295是32位可以容纳的最大数字,您的事务ID现在大于数据库可以容纳的数字字段。

2020-05-17