매우 간단한 통계 스크립트를 만들려고합니다.PHP PDO 삽입이 없으면 지난 15 분
테이블이 data (ip, date, page)
입니다. 지난 15 분 이후에 동일한 IP 및 페이지가없는 경우에만 ip 및 현재 페이지를이 테이블에 삽입하려고합니다.
는 여기에 내가 시도 마지막 SQL이다 :
INSERT INTO data (`ip` , `date` , `page`)
SELECT (:ip , NULL , :page)
WHERE NOT EXISTS (
SELECT * FROM data
WHERE `ip` = :ip AND `page` = :page AND date BETWEEN timestamp(DATE_SUB(NOW(), INTERVAL 15 MINUTE)) AND timestamp(NOW())
)
선택 내부 "없는 존재"단독으로 사용되는 경우 작동합니다. 도움을 주시면 감사하겠습니다. 이러한 질문에 나는 그것이 작동 얻을 관리
$sql = 'SELECT * FROM data
WHERE `ip` = :ip AND `page` = :page AND date BETWEEN timestamp(DATE_SUB(NOW(), INTERVAL 15 MINUTE)) AND timestamp(NOW())';
$sth = $pdo->prepare($sql);
$sth->execute(array(':ip' => 'that ip', ':page' => 'that page'));
if ($sth->rowCount() === 0)
{
$sql = 'INSERT INTO data (`ip` , `date` , `page`)
VALUES (:ip , NULL , :page)';
// etc.
}
기본 키를 가지고 있습니까? 힌트 : 당신은 항상 프라이 머리 키를 가져야한다. (당신이 갖고 있지 않은 경우 MySQL은 당신을 위해 대리 키를 생성 할 것이다.) –
기본 키가 없습니다. –