0

これが私のクエリで、正常に動作し、フィールドの friend_id は MySQL big-int 型です

"select friend_id FROM users_friends uf WHERE uf.user_id=1192134553 limit 2"

クエリは必要な結果、つまり 100002407532395 、 100002307531370 を返します

今ここに私のサービス zend/amf サービスがあります

public function  GetUserAllFreinds($user_id)
{
    $sql    =    "SELECT friend_id FROM  users_friends uf WHERE uf.user_id=$user_id limit 2";
    $res    =    mysql_query($sql) or die(debug($sql).mysql_error());
    return $res;    
}

そして、サービスは私に 2147483647 を返します。しかし、friend_id を MySQL varchar に設定すると、機能します。なぜbig-intで機能しないのですか??

4

1 に答える 1

0

次のように、サービス メソッドの前にアノテーションを配置してみてください。

/**
@param int $user_id
@return int
*/

また、コードは mysql_query の結果を返しています。結果を返す前に処理すべきではありませんか?

$values = array()
while ($row = mysql_fetch_assoc($result)) {
    $values[] = $row['friend_id'];
}

次に、$values を返し、@return を int ではなく array に設定します。

于 2011-06-14T07:08:44.240 に答える