0

そのため、ライブ Web サイトで奇妙な問題が発生しています。mysql テーブルの datetime フィールドでは、時間がマップされている場合とマップされていない場合が多いため、問題の原因がわかりません。ただし、日付は常にマップされます。

コードは次のようになります。

   $party_system_id = $this->blabla->addUser($username, 'None', 'None', '',
   $email,$promo_code,$distributor_id);

    if ($party_system_id!=0){

    $loginToken = md5(uniqid(rand(), true));    

        $params = array(
            'sponsorId' => $sponsor_id,
            'refferalId' => $referral_id,
            'accountType' => $type,
            'email' => $email,
            'username' => $username,
            'password' => md5($password),
            'firstName' => 'n/a',
            'lastName' => 'n/a',
            'expires' => $expiration_date,
            'activated' => 1,
            'gender' => $gender,
            'languageId' => 38,
            'onlineStatus'=> 0,
            'status' => 5,
            'dateAdded' => new Zend_Db_Expr('NOW()'),
            'blaId' => $party_system_id,
    'loginToken' => $token,
            'termsAccepted' => 1
        );

        return $this->insert($params);

    }

登録はいつでも問題ありませんが、多くのユーザーに対して言ったように、次のようになります: 2012-05-16 10:20:33私は取得します: 2012-05-16 00:00:00そしてもちろん、それは 00 ではありません:登録時の00:00 :)

mysql、スクリプト構造、Zend_Db_Expr のどれが問題なのかわかりません。これを適切にデバッグする方法もわかりませんが、すべての提案は大歓迎です:)

4

1 に答える 1

1

dateAddedフィールドにフォーマットとしてYmdH:i:sが含まれていることを確認してください。ただし、単純に使用することもできます。 date('Y-m-d H:i:s')

  $params = array(
        'sponsorId' => $sponsor_id,
        'refferalId' => $referral_id,
        'accountType' => $type,
        'email' => $email,
        'username' => $username,
        'password' => md5($password),
        'firstName' => 'n/a',
        'lastName' => 'n/a',
        'expires' => $expiration_date,
        'activated' => 1,
        'gender' => $gender,
        'languageId' => 38,
        'onlineStatus'=> 0,
        'status' => 5,
        'dateAdded' => date('Y-m-d H:i:s'),
        'blaId' => $party_system_id,
        'loginToken' => $token,
        'termsAccepted' => 1
    );
于 2012-05-16T15:37:59.393 に答える