используйте http для запуска запроса на удаленном sql db

Я пытаюсь подключиться к sql db через php, но кажется, что мой хостинг-провайдер заблокировал доступ к подключению к удаленным db, поэтому мне сказали использовать http и «разобрать ключ» на моей другой учетной записи хостинга (с помощью другой хостинг-провайдер) и запускать запросы mysql оттуда, а затем отправить данные обратно в оригинал.

Мне нужно подключиться к db и проверить определенную информацию в определенных строках. Затем, используя функцию if , обрабатывая другой код в зависимости от того, что возвращается из db (если информация верна и находится в правильной строке, обработайте x-код и если информация неверна в db, обработайте код y).

^^ thats запрос, который я пытаюсь запустить ^^

У меня все это работает, а затем фактическое подключение к части db, поскольку мой хостинг-провайдер заблокировал ее. Они сказали мне использовать http (как объяснялось выше), но я понятия не имею, как это сделать.

Может кто-нибудь объяснить (на английском языке пожалуйста), как я буду использовать http, чтобы сделать что-то вроде этого? Или лучше, проще?

Я не могу сменить хостинг-провайдеров ….

благодаря

Вы можете использовать CURL для запроса этой php-страницы на другом сервере, а затем обработать ответ.

Пример создания запроса на завивание

 $encoded = ''; // include GET variables foe example. POST will be similar foreach($_GET as $name => $value) { $encoded .= urlencode($name).'='.urlencode($value).'&'; } // chop off last ampersand $encoded = substr($encoded, 0, strlen($encoded)-1) $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "myOtherHostThatBlockedMysqlAccess.com/mysqlPage.php"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $encoded); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); $output = curl_exec($ch); curl_close($ch); 

Итак, что мы делаем в предыдущем примере – мы запрашиваем mysqlPage.php на сервере, который имеет доступ к вашей базе данных Mysql. На этой странице вам нужно будет ввести логику доступа Mysql. После того, как вы извлечете записи из db – вы, вероятно, закончите с каким-то массивом, как $ someDbArray, вы можете сериализовать этот массив и просто повторить его:

 echo serialize($someDbArray); 

Независимо от того, что вы откликнулись, вы будете доступны внутри переменной $ output, являющейся выходом CURL. Таким образом, вы можете просто удалить свой массив следующим образом:

 $myDataArray = unserialize(output); 

Однако, если вы спросите меня, лучшим решением будет получение хостинга, который не ограничивает доступ из любой точки. Предполагаю, вы используете общий хостинг? Я бы переключил, по крайней мере, на VPN или выделенный сервер. Я имею в виду – в любом случае – через REST или CURL – латентность будет огромной. Кроме того, я не уверен, какие данные вы будете передавать, но подумайте о безопасности. Вы должны будете использовать https, по крайней мере.

Лучше вы создадите некоторую службу REST на удаленном сайте. Таким образом, он может обеспечить безопасную и удобную интеллектуальную обработку данных (чтение / запись) со стандартным механизмом HTTP.

Если вы можете запустить демон на своем сервере, попробуйте DBSlayer . Кроме того, он предоставляет HTTP-интерфейс для MySQL.