Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kolumna typu bigint, po select'ie inna wartość, mssql, php
phpeff
post 19.12.2017, 13:18:27
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 19.12.2017

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


Witam,
Mam bazę danych i tabele na serwerze MSSQL, gdzie jedna z kolumn (id) jest typu (bigint, null) i są do niej zapisane wartości typu:
2000320001019000000,
2000423001021000000.

Do pobrania zawartości używam skryptu:
  1. $dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
  2. } catch (PDOException $e) {
  3. echo "Failed to get DB handle: " . $e->getMessage() . "\n";
  4. }
  5. $stmt = $dbh->prepare("SELECT * FROM table_1");
  6. $stmt->execute();
  7. while ($row = $stmt->fetch()) {
  8. print_r($row);
  9. }
  10. unset($dbh); unset($stmt);

W wyniku, dla pola id otrzymuję wartości, dość dziwne:
Array ( [id] => 2.00032000102e+18 [0] => 2.00032000102e+18
Array ( [id] => 2.000083003375e+18 [0] => 2.000083003375e+18
Array ( [id] => 2.000531010747e+18 [0] => 2.000531010747e+18

O co tutaj chodzi? Dlaczego jest to tak konwertowane?
Go to the top of the page
+Quote Post
Lion
post 20.12.2017, 18:24:54
Post #2





Grupa: Zarejestrowani
Postów: 148
Pomógł: 14
Dołączył: 23.02.2013

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


Wartość wygląda poprawnie, wykładnik się zgadza. Sprawdź var_dumpem czy to jest integer czy string.


--------------------
Go to the top of the page
+Quote Post
sabat24
post 20.12.2017, 18:54:57
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Obstawiałbym float. Jeśli chcesz mieć wartość "normalną" musisz zrzutować to na stringa. Strzelałbym w coś takiego:

  1. SELECT CAST(ID AS VARCHAR)


albo na poziomie php
  1. $ID = gmp_init($your_id_as_string_or_int);
  2. $IDstr = gmp_strval($ID;


Ten post edytował sabat24 20.12.2017, 18:55:39
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 20:59