Mam dwa serwery obsługujące dwie różne witryny z dwiema oddzielnymi bazami danych. Jednak niektóre dane muszą zostać udostępnione - dlatego istnieje CRON, który działa, aby skopiować dane z pierwszej witryny do drugiej witryny. Te dwie witryny były używane do uruchamiania na tym samym serwerze, ale teraz je rozdzieliliśmy, więc próbuję zmienić PHP, aby móc sobie z tym poradzić.Jak wstawić wartość zwracaną jednego polecenia SQL do innej tabeli przy użyciu PHP
Oto kod, gdzie jestem napotkania problemu:
$sql = "SELECT * FROM site1.events";
$events = mysql_query($sql, $site1db);
$sql = "INSERT INTO site2.events SELECT * FROM $events";
$doIt = mysql_query($sql, $site2db);
Teraz wiem, że SELECT * FROM site1.events
jest udane, ale nie można wstawić do drugiej strony i nie widzę jakichkolwiek błędów . Nigdy wcześniej nie napisałem PHP (jest to starsze zadanie), więc jeśli jest to coś, co zostało wcześniej omówione - wskaż mi właściwy kierunek.
Należy pamiętać, że site2.events
jest obcięty przed tymi poleceniami, więc nie jest konieczne porównywanie.
Użyj 'mysqli' zamiast' mysql'. Nie jestem pewien, w jaki sposób obsługuje on wiele serwerów, ale można się przyjrzeć tabelom stowarzyszonym. – Coloco
'$ events' jest zasób mysql i nie sądzę, możesz użyć go jako ciąg, ale można napisać' * FROM ($ sql) ', ponieważ' $ sql' jest ciągiem. Zauważ, że używasz 'mysql_', który jest przestarzały i rozważ użycie' mysqli_' jako @Coloco suggested lub 'PDO'. –