2017-02-28 8 views
0
DROP TABLE IF EXISTS 'ci_sessions'; 
CREATE TABLE 'ci_sessions' ( 
    'session_id' varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '0', 
    'ip_address' varchar(16) COLLATE utf8_bin NOT NULL DEFAULT '0', 
    'user_agent' varchar(120) COLLATE utf8_bin DEFAULT NULL, 
    'last_activity' int(10) unsigned NOT NULL DEFAULT '0', 
    'user_data' text COLLATE utf8_bin NOT NULL, PRIMARY KEY ('session_id'), 
    KEY 'last_activity_idx' ('last_activity')) 
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; 

하고 그것이라고 할 수 무엇잘못 여기에 내가 phpMyAdmin을에이 코드를 실행하려고했습니다

# 1064 - 당신은 당신의 SQL 구문에 오류가 있습니다; 올바른 구문은 라인 1

+8

거꾸로 쉼표가 백틱 – Strawberry

+0

그래서 아니다 - 예를 들면 열 명명 last_activity는

세컨드 (!) 참고 ... NULL 값이 허용되는 것을 나타냅니다 반전 된 모든 혼수 상태를 다시 진드기로 대체해야합니까? – Lestah

+0

아래에서 대답했듯이 ... – baao

답변

1

그것은 모든 테이블과 열 이름에 동일한 오류의에서 ' 근처' 'ci_sessions'를 사용하는 MySQL 서버 버전에 해당하는 설명서를 확인. 당신이 NOT NULL 사용하고 문자열 0에 기본 값을 설정 - (!) 참고로

DROP TABLE IF EXISTS `ci_sessions`; 
CREATE TABLE `ci_sessions` (
    `session_id` varchar(40) COLLATE utf8_bin NOT NULL DEFAULT '0', 
    `ip_address` varchar(16) COLLATE utf8_bin NOT NULL DEFAULT '0', 
    `user_agent` varchar(120) COLLATE utf8_bin DEFAULT NULL, 
    `last_activity` int(10) unsigned NOT NULL DEFAULT '0', 
    `user_data` text COLLATE utf8_bin NOT NULL, PRIMARY KEY (`session_id`), 
    KEY `last_activity_idx` (`last_activity`)) 
ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin; 

을 :

` 

그래서이 작동합니다 : 당신은 역 따옴표를 사용해야하는 동안 '를 사용합니다. 꽤 자주. 이는 나쁜 습관이나 나중의 쿼리를위한 적어도 더 많은 작업을 나타냅니다. last_activity는 일반적 DATETIME 컬럼 int가 아닌 것 (10)

+0

unixtimestamp는 last_activity에 유효한 값입니다. – Strawberry

+0

유효한 yes @Strawberry. 하지만 쿼리하기가 더 어려워졌습니다 – baao

+0

딸기 덕분에 문제가 해결되었습니다 – Lestah