Ik snap er echt helemaal niets meer van. Ik haal een JSON object op van Twitter. Hierin heeft elke tweet een 17-cijferige "id_str", bijvoorbeeld [id_str] => 38335542055796736. Ik heb een MySQL database tabelletje met daarin een id_str veld, gedefinieerd als bigint(17). Om de JSON informatie via php op te slaan in de database, gebruik ik json_decode om het object om te zetten in een php variant.
Maar wat ik ook niet probeer, telkens worden voor elke id_str het cijfer 2147483647 ingevoerd!? Dat cijfer zegt mij verder niets; het is ook niet toevallig de waarde van een andere property uit het JSON object ofzo.
Als ik in de tabel bigint(17) verander in int(17) verandert dat niets. Vreemd genoeg: als ik in de tabel id_str verander in een varchar(17), worden de strings wel goed opgeslagen.
Waarschijnlijk wordt (ook gezien de naam), id_str als een string gezien, maar als ik het volgende in mijn code id_str tot een integer forceer, helpt dat ook niets:
Wat doe ik nu verkeerd?
Maar wat ik ook niet probeer, telkens worden voor elke id_str het cijfer 2147483647 ingevoerd!? Dat cijfer zegt mij verder niets; het is ook niet toevallig de waarde van een andere property uit het JSON object ofzo.
Als ik in de tabel bigint(17) verander in int(17) verandert dat niets. Vreemd genoeg: als ik in de tabel id_str verander in een varchar(17), worden de strings wel goed opgeslagen.
Waarschijnlijk wordt (ook gezien de naam), id_str als een string gezien, maar als ik het volgende in mijn code id_str tot een integer forceer, helpt dat ook niets:
code:
1
2
3
4
5
| db_query(" INSERT INTO tweets (query, id_str, created_at, ...) VALUES('%s', '%s', %d, %d, ...) $query, (int)$tweet['id_str'], strtotime($tweet['created_at']), ... ); |
Wat doe ik nu verkeerd?
[ Voor 6% gewijzigd door Reveller op 17-02-2011 21:51 ]
"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."