2015-01-23 4 views
0

이 문제와 관련하여 여기에서 다른 많은 질문을 보았지만 지금까지 해결할 수있는 질문은 없습니다.예기치 않은 출력 Dbdelta WordPress

dbDelta의 코드에 따라. SQL 문은 다음과 같아야합니다.

SQL 문에서 각 필드를 고유 한 행에 입력해야합니다.

PRIMARY KEY와 기본 키 정의 사이에 공백이 있어야합니다.

동의어 INDEX가 아닌 키워드 KEY를 사용해야하며 은 적어도 하나의 KEY를 포함해야합니다.

필드 이름 주위에 아포스트로피 또는 백틱을 사용하면 안됩니다.

필드 유형은 모두 소문자 여야합니다. CREATE TABLE 및 UPDATE와 같은 SQL 키워드는 대문자 여야합니다.

내가지고있어 오류 메시지는 다음과 같습니다

WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(
     id mediumint(9) NOT NULL AUTO_INCREMENT, 
     name varchar(255) NOT NUL' at line 1] 

하지만 내 눈을 내 SQL 문이 dbDelta의 요구 사항을 준수하는

. NB 변수 $ table_name 및 $ charset_collate는 함수에서 앞에서 정의됩니다.

$sql = "CREATE TABLE $table_name (
     id mediumint(9) NOT NULL AUTO_INCREMENT, 
     name varchar(255) NOT NULL, 
     statistics longblob NOT NULL, 
     PRIMARY KEY (id) 
    ) $charset_collate;"; 

답변

0

이 방법에 대해 :

$sql = "CREATE TABLE " . $table_name. " (
     id mediumint(9) NOT NULL AUTO_INCREMENT, 
     name varchar(255) NOT NULL, 
     statistics longblob NOT NULL, 
     PRIMARY KEY (id) 
    ) " . $charset_collate . ";";