Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przenoszenie rekordow z bazy do bazy
Forum PHP.pl > Forum > Bazy danych
pietrucha133
Witam
Jestem nowy na forum i w kwestii php test jestem zielony takze prosze o wyrozumialosc.

Mam pewien problem chcialem sobie stworzyc pewien plik ktory bedzie mi wyciagal z bazy mysql wybrane przeze mnie informacje o zarejestrowanych uzytkownikach i wstawial je do nowej bazy danych. Doszedlem do momentu gdzie wyswietlaja mi sie informacje z jednej bazy danych ale teraz nie wiem jak zrobic zeby one byly wstawiane do drugiej.
Czy byłby ktoś w stanie mi pomóc?

Oto mój kod przez który wyciągam dane z pierwszej bazy danych

  1. <?php
  2.  
  3.  
  4. function baza1() {
  5. mysql_connect('xxx', 'xxx', 'xxx');
  6.  
  7. $result = mysql_query("SELECT email, password, name, user_id, user_group, reg_date, fullname, land FROM dle_users");
  8.  
  9. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  10. printf("Email: %s Password: %s Nazwa: %s user_id: %s user_group: %s reg_date: %s fullname: %s land: %s<br />", $row["email"], $row["password"], $row["name"], $row["user_id"], $row["user_group"], $row["reg_date"], $row["fullname"], $row["land"]);
  11. }
  12.  
  13. }
  14.  
  15. ?>



Z góry dzięki za pomoc
mmmmmmm
  1. INSERT INTO innabaza.tabela(email, password, name, user_id, user_group, reg_date, fullname, land) SELECT email, password, name, user_id, user_group, reg_date, fullname, land FROM dle_users
pietrucha133
Wstawiłem coś takiego ale to nie działa.
Nie wiem co miałeś na myśli piszac w zapytaniu do bazy "innabaza.tabela"

  1. <?
  2.  
  3.  
  4. function baza1() {
  5. mysql_connect('xxx', 'xxx', 'xxx');
  6.  
  7. $result = mysql_query("SELECT email, password, name, user_id, user_group, reg_date, fullname, land FROM dle_users");
  8.  
  9. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  10. printf("Email: %s Password: %s Nazwa: %s user_id: %s user_group: %s reg_date: %s fullname: %s land: %s<br />", $row["email"], $row["password"], $row["name"], $row["user_id"], $row["user_group"], $row["reg_date"], $row["fullname"], $row["land"]);
  11. }
  12.  
  13. }
  14.  
  15.  
  16.  
  17. function baza2() {
  18. mysql_connect('yyy', 'yyy', 'yyy');
  19.  
  20. $sql = mysql_query("INSERT INTO dle_users (email, password, name, user_id, user_group, reg_date, fullname, land) SELECT email, password, name, user_id, user_group, reg_date, fullname, land FROM dle_users");
  21.  
  22. }
  23.  
  24.  
  25. baza1();
  26. baza2();
  27. ?>
mmmmmmm
Widzisz gdzieś w swoim zapytani kropkę? W moim jest...
pietrucha133
jesli ma to wygladać tak:
nazwa bazdy danych.nazwa tabeli to nie chce w taki sposob działać
mmmmmmm
Pokaż ten niedziałające kod.
pietrucha133
  1. <?
  2.  
  3.  
  4. function baza1() {
  5. mysql_connect('host bazy 1', 'login bazy 1', 'haslo bazy 1');
  6. mysql_select_db('nazwa bazy danych 1');
  7.  
  8. $result = mysql_query("SELECT email, password, name, user_id, user_group, reg_date, fullname, land FROM dle_users");
  9.  
  10. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
  11. printf("Email: %s Password: %s Nazwa: %s user_id: %s user_group: %s reg_date: %s fullname: %s land: %s<br />", $row["email"], $row["password"], $row["name"], $row["user_id"], $row["user_group"], $row["reg_date"], $row["fullname"], $row["land"]);
  12. }
  13.  
  14. }
  15.  
  16.  
  17.  
  18. function baza2() {
  19. mysql_connect('host bazy 2', 'login bazy 2', 'haslo bazy 2');
  20. mysql_select_db('nazwa bazy danych 2');
  21.  
  22. $sql = mysql_query("INSERT INTO nazwa bazy danych 2.dle_users (email, password, name, user_id, user_group, reg_date, fullname, land) SELECT email, password, name, user_id, user_group, reg_date, fullname, land FROM dle_users");
  23.  
  24. }
  25.  
  26.  
  27. baza1();
  28. baza2();
  29. ?>


Z pierwszej bazy wyciąga i wypisuje mi wszystko jak trzeba ale do drugiej tegoo nie wstawia
mmmmmmm
1. Użytkownik musi mieć prawa do obu baz (tej, z której czyta, i tej, do której zapisuje)
2. W linii 21 ustawiasz się na domyślnej bazie 2.
3. W zapytaniu z linii 23 czytasz z bazy 2 (świadczy o tym prefiks) i zapisujesz do domyślnej bazy (świadczy o tym brak prefiksu). Jak myślisz jaka to jest? (patrz punkt wyżej)
programista28
po uzyskaniu wyników z jednej bazy wstaw do drugiej poleceniem mysql tylko pamietaj zeby stosowac dobre nazwy tabel
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.