반응형
새 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
반응형
'programing' 카테고리의 다른 글
| env: mysql: 'wp import' 뒤에 해당 파일 또는 디렉토리가 없습니다. (0) | 2023.03.13 |
|---|---|
| TypeScript를 사용하여 VS 코드에서 모듈 "fs"를 찾는 방법 (0) | 2023.03.13 |
| JSON 개체에서 요소 제거 (0) | 2023.03.13 |
| 웹 팩의 css로 인해 Mocha 테스트에 실패했습니다. (0) | 2023.03.13 |
| 함수를 json으로 전달하고 실행 (0) | 2023.03.13 |