我有一个运行几个db更新的ipn并写一个支付交易。 ipn工作得很好。然而,今天早上,如果一个人的姓氏是“O`Brien”,那就失败了。 (注意反引号,而不是常规的撇号。)
在ipn脚本中,变量是这样的:
...
$firstName = mysqli_real_escape_string($dbc, $_POST['first_name']);
$lastName = mysqli_real_escape_string($dbc, $_POST['last_name']);
...
..而插入查询是这样的:
$q = "INSERT INTO payments_log (`player_id`,`payer_email`,`transaction_id`,`paypal_first_name`,`paypal_last_name`,`payment_status`,`payment_amount`,`created`) VALUES ('$p_id', '$payerEmail', '$txn_id', '$firstName', '$lastName', '$status', '$amount', NOW())";
其他更新运行得很好,例如姓氏为“奥沙利文”,“奥布莱恩”等姓氏的人,也就是常规撇号。
我找不到任何其他原因,为什么ipn除了反击之外会失败。任何人都可以告诉我,这确实是问题的原因吗?如果是,我是否需要对所有姓氏进行str_replace?...
TIA