Aanmaken van tabel gaat niet goed
Goedemiddag,
Voor Wordpress ben ik een plugin het maken. Maar ik loop even vast op het volgende:
Zodra ik de plugin activeer, word de tabel niet aangemaakt.
Verwijder ik group int(11) en price varchar(255) dus dat enkel ID en NAME overblijft werkt het wel.
Voor Wordpress ben ik een plugin het maken. Maar ik loop even vast op het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
function plugin__activate() {
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$item_table = $wpdb->prefix . "jb_menu";
$sql = array();
if($wpdb->get_var("SHOW TABLES LIKE '$item_table'") != $item_table) {
$sql[] = "CREATE TABLE $item_table (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255),
group int(11),
price varchar(255),
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
}
?>
function plugin__activate() {
global $wpdb;
$charset_collate = $wpdb->get_charset_collate();
$item_table = $wpdb->prefix . "jb_menu";
$sql = array();
if($wpdb->get_var("SHOW TABLES LIKE '$item_table'") != $item_table) {
$sql[] = "CREATE TABLE $item_table (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255),
group int(11),
price varchar(255),
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
dbDelta( $sql );
}
}
?>
Zodra ik de plugin activeer, word de tabel niet aangemaakt.
Verwijder ik group int(11) en price varchar(255) dus dat enkel ID en NAME overblijft werkt het wel.
Lijkt erop dat group een gereserveerd woord is en conflicteert met GROUP().
Ik raad aan om er een andere onderscheidende naam van te namen.
Ik raad aan om er een andere onderscheidende naam van te namen.
Hi Ariën
Inderdaad, ik heb de naam veranderd en het werkt:)
Een reservering voor een woord dat maar 1x mag voorkomen waar word dat geregeld?
Inderdaad, ik heb de naam veranderd en het werkt:)
Een reservering voor een woord dat maar 1x mag voorkomen waar word dat geregeld?
Het is iets van MySQL waar je geen invloed op hebt. Je kan het tussen `backticks` plaatsen, maar dat vind ik niet de beste oplossing voor een plug-in. Hier staat de lijst....
Gewijzigd op 29/11/2019 13:51:23 door - Ariën -
Weet je zeker dat get_charset_collate() ook echt een / de juiste character encoding en (bijbehorende) collation instelt? Want als dat niet expliciet in $wpdb is vastgelegd dan wordt er -worst case- niets ingesteld.
Controleer anders eens de definitie van deze tabel met SHOW CREATE TABLE <tabelnaam>.
Controleer anders eens de definitie van deze tabel met SHOW CREATE TABLE <tabelnaam>.