0

ここにmysqlデータがあります

--
-- Table structure for table `pending_accounts`
--

CREATE TABLE IF NOT EXISTS `pending_accounts` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(15) NOT NULL,
  `jdate` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 COMMENT='Pending accounts' AUTO_INCREMENT=4 ;

--
-- Dumping data for table `pending_accounts`
--

INSERT INTO `pending_accounts` (`id`, `username`, `jdate`) VALUES
(3, 'admin', '2013-04-26 01:57:24');

そして私のPHPとSQLコード

$last_update = time();  // for example 1367022789


 $q = $db->fetchOne("SELECT * FROM pending_accounts WHERE '".strtotime(jdate)."' < '".$last_update."' ORDER BY id ASC");

ご覧のとおり、jdate < $last_update および $last_update が '1367022789' のような time() 数値形式であるすべての保留中のアカウントを選択しようとしているため、strtotime() を使用して、'2013- 04-26 01:57:24' を数値形式に変換します。

残念ながら、これは正しく機能しません。

任意のアイデアをお願いします?

ありがとうございました。

4

1 に答える 1

4

この行は無効です:

'".strtotime(jdate)."' < '".$last_update."'

このような定数をタイムスタンプに変換しようとしています。

おそらく、mysql でUNIX_TIMESTAMP関数を使用するつもりです。

"SELECT * FROM pending_accounts WHERE UNIX_TIMESTAMP(`jdate`) < '".$last_update."' ORDER BY id ASC"
于 2013-04-27T01:11:02.317 に答える