我正在尝试使用paypal ipn以便在订单完成后将东西插入数据库。
我需要在sql数据库中插入一个句子,该句子是: “这是我的句子àéè”
“é”和“è”字符完全可以正常工作,但是对于“à”,在dabatase中将其替换为“?”。
我完全不知道为什么“à”不起作用,我猜这是字符集的问题。
这是我的代码:
$config = parse_ini_file('config.ini');
$conn = mysqli_connect($config['server_name'], $config['mysql_username'], $config['mysql_password'], $config['db_name']) or die(mysqli_error($conn));
mysqli_set_charset($conn, "utf8");
$mysql_qry_insert = "SET NAMES utf8 ";
$resultttt = mysqli_query($conn,$mysql_qry_insert) or die(mysqli_error($conn ));
mb_internal_encoding("UTF-8");
$sentence = $customIpnPaypalVar;
$mysql_qry_insert2 = "insert into dbTest values ('".mysqli_real_escape_string($conn,$customIpnPaypalVar)."')";
$resultttt = mysqli_query($conn ,$mysql_qry_insert2) or die(mysqli_error($conn ));
数据库向我显示:“这是我的句子?éè”。
我还尝试用à
替换à,但没有用。
谢谢。
编辑:
我认为我的问题来自将表格中的数据传递到IPN时出现的贝宝(PayPal)问题,有关发生什么情况的任何想法?
编辑2: 问题肯定来自贝宝,当我在贝宝表单的自定义字段中传递自定义变量并在日志中的ipn中检索它时,它显示出很好的重音,但是当我将变量插入数据库时,该重音不起作用,为什么呢?
答案 0 :(得分:0)
我的问题的解决方案是使用mysqli准备的语句,由于某些原因,特殊字符可用于此方法。而且,它似乎更安全。
谢谢Magnus Eriksson在这里帮助我。