programing

새 Wordpress 데이터베이스 테이블 작성 시도 중

iphone6s 2023. 3. 13. 20:14
반응형

새 Wordpress 데이터베이스 테이블 작성 시도 중

플러그인 활성화 시 새 데이터베이스 테이블을 생성하려고 합니다.아무리 생각해도 이게 왜 안 먹히는지 모르겠어요.

function super_simple_photo_activate() {
global $wpdb;
$table_name = $wpdb->prefix."super_simple_photo_options";
if ($wpdb->get_var('SHOW TABLES LIKE '.$table_name) != $table_name) {
    $sql = 'CREATE TABLE '.$table_name.'(
        thumbs_max VARCHAR(3),
        image_max VARCHAR(4),
        image_quality VARCHAR(3),
        PRIMARY KEY  (id))';

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

    add_option("super_simple_photo_db_version", "1.0");
}
}
register_activation_hook(__FILE__, 'super_simple_photo_activate');

최소 5시간 동안 이걸 만지작거렸지만 운이 없었고, 활성화에도 오류가 없었습니다.

ID INTEGER NOT NULL이 t.thielemans에게 어떤 트릭을 제공했습니까?

$sql = 'CREATE TABLE '.$table_name.'(
        id INTEGER NOT NULL,
        thumbs_max VARCHAR(3),
        image_max VARCHAR(4),
        image_quality VARCHAR(3),
        PRIMARY KEY  (id))';

이 코드를 사용해 보세요.

register_activation_hook ( __FILE__, 'on_activate' );

function on_activate() {
    global $wpdb;
    $create_table_query = "
            CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}table1` (
              `id` bigint(20) unsigned NOT NULL default '0',
              `name` text NOT NULL,
              `address` text NOT NULL
            ) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
    ";
    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $create_table_query );
}

작성 테이블 구문이 잘못되었습니다.다음과 같아야 합니다.

 $sql = 'CREAT TABLE '.$table_name.'(
-----
 $sql = 'CREATE TABLE '.$table_name.'(

편집: 기본 키를 정의합니다.

 $sql = 'CREATE TABLE '.$table_name.'(
        id INTEGER NOT NULL,
        thumbs_max VARCHAR(3),
        image_max VARCHAR(4),
        image_quality VARCHAR(3),
        PRIMARY KEY (id))';

W3 Schools SQL 관련 추가 정보 : http://www.w3schools.com/sql/sql_primarykey.asp

언급URL : https://stackoverflow.com/questions/12952635/trying-to-create-new-wordpress-database-table

반응형