3

Twitter 検索 API は、ツイートの一意の ID を含む JSON オブジェクト ao を返します。

[id] => 2.9851634017882E+17
[text] => foobar

ID を格納するためにデータベースにMySQLbigint(20)フィールドを作成しました。ただし、ID をデータベースに保存しようとすると2、(この場合) としか表示されません。

私は何を間違っていますか?

4

4 に答える 4

2

呼び出し内のすべてのIDについて、PHPに送信する前に値を文字列に変換するアプローチをお勧めします。

私は自分のウェブアプリでこれを行っています、そしてそれは素晴らしい働きをします。APIでまったく同じ問題に直面しました。

元。TwitterAPIでjqueryを使用する

$.getJSON('https://api.twitter.com/1.1/search/tweets.json?q=api&callback=?', function(data){
     $.each(data, function() { 
     this.id_str = this.id_str + ""; // cast integer as string to avoid PHP int to float conversion on json_decode

/* ... more API parsing code ... */

id_strまた、値ではなく値をキャプチャするようにしてくださいidid_strが優先されid、より大きなIDを処理するときにエラーが発生しにくくなります。

于 2013-02-05T10:01:01.490 に答える
1

取得するIDはフロートです。ツイッターがIDとしてフロートを提供してくれるとしたら、私は非常に驚きます。

JSONオブジェクトがすべての整数をfloatに変換するものによって解析されていないことを確認しますか?これを修正すると、値を保存する際の問題が解決されます。

于 2013-02-04T20:17:11.063 に答える
1

MySQLは理解していないので、理解2.9851634017882E+17していINTません。数値を、入力の先頭から検出した最長の整数である。に切り捨てます2。科学的記数法ではなく、intとしてクエリに入れる必要があります。また、それがまさにTwitterから返ってきたものである場合、その番号の精度は1の位まで下がらないため、IDさえわかりません。

于 2013-02-04T20:15:23.190 に答える