![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Jak najlepiej dodać daną bigint (64 bit) do tabeli mysql, skoro php obsługuje maksymalnie 32-bitowe liczby?
Trzymać ją w stringu w php a następnie rzutować na bigint w mysql, czy moze da się przekazać mysql`owi dwie liczby typu int a mysql wykona coś typu: liczba1<<32 + liczba2 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
dużą liczbę możesz trzymać w stringu (pomocna może byc biblioteka BCMath), a MySQL to już chyba sam sobie przekonwertuje jak mu w zapytaniu dasz stringa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
Sam nie wiem czy takie rzutowanie na string, a potem na liczbę jest sensowne.
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
A nie możesz po prostu ustawić typu pola w tabeli na BIGINT ? zgodnie z manualem MySQL powinno Ci to dać możlowość zapisywania liczb 64 bity (unsigned) lub ze znakiem 63 bity.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Możesz trzymać to w stringu, gdyż zapytanie SQL to string. Zwróć uwagę, że w przykładowym
Nie ma tak naprawdę żadnej liczby - jest jedynie tekst, z punktu widzenia PHP. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
No proszę Ciebie, nie mów, że nie ma różnicy pomiędzy danymi liczbowymi a tekstowymi trzymanymi w bazie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Aż pomyślałem, że pokaże na najprostszym przykładzie: Tabela z danymi w BIGINT:
Tabela z danymi w VARCHAR:
Jak widać dane są takie same w dwóch tabelach. Spróbuj teraz wykonać na obu tabelach takie zapytanie:
Jeśli nie widzisz różnicy w wynikach to przykro (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Każdy typ zmiennych w php ma swój odpowiednik w MySQL i tego się należy trzymać i nie kombinować, w końcu po coś zostało to wymyślone. |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 657 Pomógł: 125 Dołączył: 29.04.2006 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Każdy typ zmiennych w php ma swój odpowiednik w MySQL i tego się należy trzymać i nie kombinować, w końcu po coś zostało to wymyślone. ale nie wszystko można zrobić intem! Ja nie widzę problemu w trzymaniu liczb w stringach. Można je przecież i tak obrabiać za pomocą funkcji BC Math tudzież GMP |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat No proszę Ciebie, nie mów, że nie ma różnicy pomiędzy danymi liczbowymi a tekstowymi trzymanymi w bazie Ale tego nigdy nigdzie nie napisałem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Oczywiście, że pomiędzy INT a VARCHAR jest różnica (są to dwa kompletnie inne typy przecież). Ale z punktu widzenia PHP przy wprowadzaniu (bo o to pytał autor) danych używa się jednego stringa. To, że przy pobieraniu danych jest już różnica to inna bajka. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 23:37 |