我有一个运行一些数据库更新并编写付款交易的 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())";
其他更新运行良好,例如姓氏为“O'Sullivan”、“O'Brien”等的人,即带有常规撇号。
除了反引号之外,我找不到任何其他原因导致 ipn 失败。谁能告诉我这是否确实是问题的原因?如果是,我需要对所有姓氏做 str_replace 吗?...
TIA