2014-11-24 2 views
1

데이터베이스에 새 테이블을 만들고 싶습니다. 작동하지 않는 것 같습니다. 그것은 wordpress plugin이기 때문에 그것이 엉망이 될지 모르겠습니다.PHP MySQL 데이터베이스가 새 테이블을 만들지 않습니다.

if ($wpdb->get_var('SHOW TABLES LIKE "' . $wpdb->prefix . DB_PROFILE_TABLE . '"') != $wpdb->prefix . DB_PROFILE_TABLE) 
     { 
      $sql = 'CREATE TABLE ' . $wpdb->prefix . DB_PROFILE_TABLE . ' (
        id BIGINT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 
        fname VARCHAR(100) NOT NULL, 
        sname VARCHAR(100), 
        city VARCHAR(100), 
        country VARCHAR(100) 
        CHARSET=utf8; '; 
       dbDelta($sql); 
     } 

초급 php 및 mySql.

+0

당신이 광산을 통해 Piyush의 답변을 받아 왜 어떤 특별한 이유가 있나요 http://codex.wordpress.org/Creating_Tables_with_Plugins를 참조하십시오? 둘 다 동일하지만 먼저 게시했습니다. – mdadm

+0

@mdadm 죄송합니다. 나는 대답으로 둘 다 받아 들일 것이지만 나는 할 수 없다. 내가 당신의 것으로 바꿀까요? – crsMC

+1

걱정 마, 나는 단지 호기심이었다. Piyush는 나보다 약간 낮은 점수를 가지므로 그를 계속 보내십시오 :) 당신은 그걸 작동시킬 수 있었습니까? – mdadm

답변

1

은 ...

당신은 당신은 각 넣어야합니다)

1 wordpress plugin를 사용하여 테이블을 만들 수있는 규칙은이 방법

global $wpdb; 

$charset_collate = $wpdb->get_charset_collate(); 

$sql = "CREATE TABLE $table_name (
    id mediumint(9) NOT NULL AUTO_INCREMENT, 
    time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, 
    name tinytext NOT NULL, 
    text text NOT NULL, 
    url varchar(55) DEFAULT '' NOT NULL, 
    UNIQUE KEY id (id) 
) $charset_collate;"; 

require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); 
dbDelta($sql); 

이들은에서 시도 할 수 필드를 SQL 문에서 자체 행에 추가하십시오.

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

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

4) 필드 이름 주위에 아포스트로피 또는 백틱을 사용하면 안됩니다. 필드 유형은 모두 소문자 여야합니다.

5) CREATE TABLE 및 UPDATE와 같은 SQL 키워드는 대문자 여야합니다.

+0

좋아, 나는 이것을 시도하고 여전히 아무것도 내 데이터베이스에 만들어졌습니다. phpmyadmin에서 수동으로 생성해야합니까? – crsMC

+0

이 올바르게 구성 되었습니까? 답변 링크를 참조하십시오. – HaveNoDisplayName

1

VARCHAR (100) 국가 뒤에 닫는 괄호가 누락 된 것처럼 보입니다. 또한 세미콜론을 제거해야 할 수도 있습니다. 당신은 괄호를 누락

$sql = 'CREATE TABLE ' . $wpdb->prefix . DB_PROFILE_TABLE . ' (
    id BIGINT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 
    fname VARCHAR(100) NOT NULL, 
    sname VARCHAR(100), 
    city VARCHAR(100), 
    country VARCHAR(100)) 
    CHARSET=utf8'; 
dbDelta($sql); 
+0

변경되었으며 여전히 작동하지 않습니다. 그래도 도와 ​​줘서 고마워! – crsMC

+1

킥킥 웃음을 위해 세미 콜론을 꺼내보십시오. – mdadm

+1

문제가 해결되지 않으면 mysql_error() 결과를 출력해볼 수 있습니까? – mdadm

관련 문제