- Регистрация
- 10.03.2019
- Сообщения
- 122
- Благодарностей
- 18
- Баллы
- 18
Приветствую, коллеги. Постараюсь объяснить, что происходит.
Значит так: на хостинге лежит скрипт php, который принимает обновления от бота тг через вебхук. Обновления пишутся в базу данных. Все работает норм, бот отвечает, строки в БД пишутся.
Решил перенести базу на виртуальный сервер, экспортировал, импортировал, пользователя создал, зенкой проверил, подключение есть, тестовая строка записалась.
Переписываю в скрипте данные для подключения к базе и скрипт перестает писать. То есть, на серваке строки в базе не появляются.
Сделал другой скрипт в той же папке на хостинге, тестовый, указал данные для подключения к базе на серваке, прописал insert с тестовой строкой. Строка в базу прописывается.
Так вот и не пойму, что происходит. Первый скрипт норм пишет в базу на хостинге, но не хочет писать в базу на серваке. Тестовый же скрипт нормально пишет в базу на серваке.
Первый скрипт никаких ошибок не выдает
Еще раз: первый скрипт рабочий, в базу, локальную относительно хостинга, пишет норм, но в удаленную не пишет. Тестовый скрипт на том же хостинге, в той же папке, с теми же данными для подключения в удаленную базу пишет. В локальную тоже, но это неважно
Вот что за мистика?)) Работы на 15 минут, а уже полдня ковыряюсь
Сервак на винде (там зенка должна стоять) плюс Openserver
Значит так: на хостинге лежит скрипт php, который принимает обновления от бота тг через вебхук. Обновления пишутся в базу данных. Все работает норм, бот отвечает, строки в БД пишутся.
Решил перенести базу на виртуальный сервер, экспортировал, импортировал, пользователя создал, зенкой проверил, подключение есть, тестовая строка записалась.
Переписываю в скрипте данные для подключения к базе и скрипт перестает писать. То есть, на серваке строки в базе не появляются.
Сделал другой скрипт в той же папке на хостинге, тестовый, указал данные для подключения к базе на серваке, прописал insert с тестовой строкой. Строка в базу прописывается.
Так вот и не пойму, что происходит. Первый скрипт норм пишет в базу на хостинге, но не хочет писать в базу на серваке. Тестовый же скрипт нормально пишет в базу на серваке.
Первый скрипт никаких ошибок не выдает
Еще раз: первый скрипт рабочий, в базу, локальную относительно хостинга, пишет норм, но в удаленную не пишет. Тестовый скрипт на том же хостинге, в той же папке, с теми же данными для подключения в удаленную базу пишет. В локальную тоже, но это неважно
Вот что за мистика?)) Работы на 15 минут, а уже полдня ковыряюсь
Сервак на винде (там зенка должна стоять) плюс Openserver
PHP:
<?php
// Токен
define('BOT_TOKEN', '****************************');
// Параметры подключения к базе данных MySQL
$servername = "*************";
$username = "**************";
$password = "*************";
$database = "*************";
// Подключение к базе данных
$conn = new mysqli($servername, $username, $password, $database);
$conn->set_charset("utf8");
// Проверка соединения
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// Получаем данные от Telegram
$update = json_decode(file_get_contents('php://input'), true);
// Проверяем, есть ли данные
if(isset($update)) {
processUpdate($update);
}
// Функция для обработки обновлений
function processUpdate($update) {
global $conn;
// Получаем JSON-объект ответа от сервера Telegram
$fullResponse = json_encode($update);
// Получаем ID обновления
$updateId = $update['update_id'];
// Получаем тип обновления
$updateType = $update['message']['chat']['type'];
// Получаем ID чата
$chatId = $update['message']['chat']['id'];
// Преобразование текста в UTF-8
$text = mb_convert_encoding($update['message']['text'], 'UTF-8', 'auto');
// Добавляем обновление в базу данных
$sql = "INSERT INTO updates (update_id, update_type, chat_id, message_text, fullResponse) VALUES ('$updateId', '$updateType', '$chatId', '$text', '$fullResponse')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// Закрываем соединение с базой данных
$conn->close();
?>
PHP:
<?php
// Параметры подключения к базе данных
$servername = '************';
$username = '***************';
$password = '*************';
$database = '*************';
// Подключение к базе данных
$conn = new mysqli($servername, $username, $password, $database);
// Проверка соединения
if ($conn->connect_error) {
// Если соединение не удалось, выводим сообщение об ошибке
die("Ошибка подключения к базе данных: " . $conn->connect_error);
} else {
// Если соединение успешно, выводим сообщение об успешном подключении
echo "Успешное подключение к базе данных! <br>";
}
// SQL запрос для добавления тестовой строки
$sql = "INSERT INTO updates (update_id, update_type, chat_id, message_text, fullResponse, user_ip, status)
VALUES ('11115', '11111', '11111', '11111', '11111', '11111', '11111')";
// Выполнение запроса
if ($conn->query($sql) === TRUE) {
echo "Новая запись успешно добавлена";
} else {
echo "Ошибка при добавлении записи: " . $conn->error;
}
// Закрываем соединение
$conn->close();
?>