#php #mysql
#php #mysql
Вопрос:
У меня есть интернет-магазин, где клиенты могут заказывать товары, поскольку теперь, когда заказ завершен, я вставляю данные продукта и пользователя в базу данных (server1), но теперь мне нравится вставлять те же данные заказа в еще одну базу данных, которая размещена на другом хостинге (server2), обе машины используют php / mysql.
Я думаю использовать PhP cURL для передачи данных с server1 на server2 следующим образом
$curl_handle=curl_init();
$data = http_build_query($order_data);
curl_setopt($curl_handle,CURLOPT_URL,'https://www.server2.com/orders');
curl_setopt($curl_handle, CURLOPT_POST, 1);
curl_setopt($curl_handle, CURLOPT_POSTFIELDS, $data);
curl_exec($curl_handle);
curl_close($curl_handle);
Мой вопрос таков: буду ли я делать это с помощью cURL или в MySQL есть что-то лучшее, что может это сделать. Кстати, оба сервера являются общим хостингом, если это имеет значение
Комментарии:
1. Вы могли бы сделать это напрямую, используя функции mysql в PHP. Если у вас есть класс-оболочка для всех ваших операций с БД, вы можете просто запустить все запросы дважды: по одному для каждого подключения к БД.
2. Я рекомендую решение Herwigs, но, пожалуйста, обратите внимание, что вы должны разрешить доступ к mysql (например, порт 3306) 1.) в брандмауэре хоста 2 и 2. в пользовательской таблице mysql сервера 2. как обычно msql настроен только на прием вызовов от localhost.
3. @AlexanderDobernig хорошо, я попробую, но до сих пор я нахожу проблему с конфигурацией mysql, потому что она находится на общем хостинге
4. Если оба сайта находятся на одном хостере, и вы не можете самостоятельно изменить настройки — спросите своего провайдера, можно ли получить доступ к db2 с host1. В облачном хостинге вы обычно можете изменить все.
Ответ №1:
вы могли бы сделать что-то вроде
$host = ['host1','host2'];
$db_name = ['db_name1','db_name2'];
$user = ['user1','user2'];
$pass = ['pass1','pass2'];
for($i=0;$i<count($host);$i ){
$mysqli = new mysqli($host[$i], $user[$i], $pass[$i], $db_name[$i]);
or
$mysqli = mysqli_connect($host[$i], $user[$i], $pass[$i], $db_name[$i]);
And here the insert code:
mysqli->query(....);
}
Вы в основном инициализируете встроенную функцию mysqli php для каждой базы данных, и вы можете работать с каждой базой данных