Уже ТРИ часа.Я пробовал ВСЕ: (
В основном, используя какой-то код, который я уже использовал в других проектах, я жду подтверждения от PayPal, получаю его и должен хранить информацию в БД. Вся информация PayPal в порядке иотлично работает.
Это то, что я пытался:
- Думая, что соединение с БД может в течение некоторого времени закрываться, будучи бездействующим, я снова подключил его и даже ВОССТАНОВИЛ (Меня не волнуют утечки памяти, производительность и т. Д. И т. Д.)
- Пробовал как простые SELECT, так и INSERT
- Добавлены распечатки (в текстовый файл) каждую строку, выводя все возможные ошибки
- Я печатаю запрос в файле и копирую / вставляю его в Adminer / PHPMyAdmin / HeidiSQL, и запрос РАБОТАЕТ без ошибок
Результаты:
- Я не получаю ЛЮБОЙ ошибки (все
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
всегда ПУСТО * - ... но БД НИКОГДА не обновляется!
- Как уже говорилось, я пытался напечатать результат простого SELECT (а результат всегда пуст), я пытался поместить оператор отладки (он просто добавляет строку в конец debug.txt) после каждогои каждая строка, и каждая строка выполняется, поэтому в PHP нет синтаксической ошибки, ... я схожу с ума ...
- Он работает на Vbu Ubuntu16.04 с PHP7, и я неслишком знаком с возможными различиями между PHP5 и PHP7, может быть, есть что-то связанное с PHP, что я упускаю из виду ...
Есть идеи, что происходит?
Извините за длину, ноЯ хотел показать ВСЕ вещи, которые я пробовал: (
Заранее спасибо:)