已经三个小时。我尝试了一切:(
基本上,使用我已在其他项目中使用的一些代码,我等待来自PayPal的确认,我得到它,我应该将信息存储在数据库中。所有PayPal信息都可以正常工作
这就是我的尝试:
结果:
mysqli_connect_errno
和mysqli_error
都是空字符串)这是代码的一部分,清除了无用的检查(无论如何都有效):
if ($sandbox)
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);
else
$fp = fsockopen ('ssl://www.paypal.com', 443, $errno, $errstr, 30);
if (!$fp) {
debug("http error");
} else {
fputs($fp, $header . $req);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
if (stripos($res, "VERIFIED") !== false) {
if (is_array($data)) {
$conn->close();
$conn = new mysqli(SERVER_NAME, DB_USERNAME, DB_PASSWORD, DB_NAME);
if (!$conn) {
$err = "Error: Unable to connect to MySQL." . PHP_EOL;
$err .= "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
$err .= "Debugging error: " . mysqli_connect_error() . PHP_EOL;
debug("DB ERROR $err");
}
$conn->set_charset('utf8');
$s = "INSERT INTO sold SET txnid=2";
debug("trying query $s");
$sql = $conn->query($s);
$err = mysqli_error($sql);
debug("DB result ***$sql*** ***$err***");
$orderid = $conn->insert_id;
debug("orderid ***$orderid***");
总结:
INSERT INTO sold SET txnid=2
将完美运行
mysqli_error
永远不会给出错误$conn->insert_id
始终为EMPTY 知道可能会发生什么吗?
抱歉这个长度,但我想展示我尝试过的所有东西:(
提前谢谢你:)
答案 0 :(得分:0)
请检查它是否进入下面的if条件
if (stripos($res, "VERIFIED") !== false) {
if (is_array($data)) {
//Put some debug code here and check
希望它可能会有所帮助
答案 1 :(得分:0)
这是一系列疯狂事件,但最后却是(当然:) :) :)我的错
我在之前的包含文件中定义了一个SERVER常量,但我在代码中使用了SERVER_NAME
PHP从来没有给我一个错误,因为首先这个文件是由PayPal调用的,它不是用户启动的,其次是日志关闭。
我启用了日志,我看到了错误
让我失望的第一个问题是:
norm://
然后在这里:
norm://
基本上,由于$conn = new mysqli(SERVER_NAME, DB_USERNAME, DB_PASSWORD, DB_NAME);
if (!$conn) {
// IT NEVER GOES INSIDE HERE IF IT FAILS!!!
没有被实例化,所以使用它的所有后续调用都失败了,回复了我认为是一个空字符串(意思是没有错误),而实际上是假值或NULL值
学过的知识?好吧,在开发时保持PHP日志运行:)