Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][SQL] Masowe tworzenie MD5
deLL
post
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 1
Dołączył: 3.11.2008
Skąd: Kozienice - Polska

Ostrzeżenie: (0%)
-----


Witam,

Mam problem. Potrzebuję utworzyć w jednej kolumnie w bazie danych (która zawiera ponad 6000 wierszy) hasła, które będą zakodowane w md5. Kolumna z hasłami znajduje się w tej samej tabeli.


Mam taki kod:
  1. $pobierz_rekordy = "SELECT `id`, `kod`, `haslo`, `haslo_md5` FROM `maile`;";
  2.  
  3. $query_one = mysql_query($pobierz_rekordy, $polaczenie)
  4.  
  5. while($row = mysql_fetch_array($query_one)) {
  6.  
  7. $kod = $row['kod'];
  8. $haslo = $row['haslo'];
  9. $md5 = $row['md5'];
  10.  
  11. $zaktualizuj_rekordy = "UPDATE `kody` SET `haslo_md5` = MD5( '" . $haslo . "' );";
  12. $query_two = mysql_query($zaktualizuj_rekordy, $polaczenie)
  13.  
  14. //echo "Hasło: " . $row['haslo'] . " | MD5: " . md5($row['haslo']) . "<br />";
  15.  
  16. }
  17.  
  18. mysql_close($polaczenie);
Lecz on ustawie wszystkie komórki hashem md5 z ostatniego wiersza.

Tak to mniej-więcej wygląda w bazie danych: (IMG:http://iv.pl/images/61868172891833460959.png)

Z góry dziękuje za pomoc! (IMG:style_emoticons/default/Lkingsmiley.png)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pmir13
post
Post #2





Grupa: Zarejestrowani
Postów: 282
Pomógł: 89
Dołączył: 12.04.2011

Ostrzeżenie: (0%)
-----


To co aktualnie robi ten kod:

1. Pobierz wszystkie rekordy, w szczególności $haslo.
2. Dla każdego rekordu wykonaj : w kolumnie md5_haslo ustaw md5($haslo) dla całej tabeli.

Krótko mówiąc dla każdego hasła wielokrotnie zmieniasz całą tabelę, w związku z tym na sam koniec zostaje w całej tabeli ustawione haslo_md5 na hash ostatniego rekordu.
Samo zapytanie mysql:

  1. UPDATE `kody` SET `haslo_md5` = MD5( `haslo` );


zrobi dokładnie to co potrzebujesz, to jest update na całą tabelę, dla każdego rekordu ustawi odpowiedni dla jego hasła hash. Nie potrzeba nic z bazy wcześniej wyciągać, nawet php do tego nie jest potrzebny, wystarczy wklepać to w konsoli mysql, phpmyadminie czy jakimkolwiek innym kliencie mysql.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 05:46