Aanmaken van tabel gaat niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Yoeri Achterbergen

Yoeri Achterbergen

29/11/2019 13:37:45
Quote Anchor link
Goedemiddag,


Voor Wordpress ben ik een plugin het maken. Maar ik loop even vast op het volgende:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 );
    }
}

?>


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.
 
PHP hulp

PHP hulp

28/03/2024 20:54:33
 
- Ariën  -
Beheerder

- Ariën -

29/11/2019 13:40:18
Quote Anchor link
Lijkt erop dat group een gereserveerd woord is en conflicteert met GROUP().
Ik raad aan om er een andere onderscheidende naam van te namen.
 
Yoeri Achterbergen

Yoeri Achterbergen

29/11/2019 13:47:51
Quote Anchor link
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?
 
- Ariën  -
Beheerder

- Ariën -

29/11/2019 13:51:03
Quote Anchor link
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 -
 
Yoeri Achterbergen

Yoeri Achterbergen

29/11/2019 13:53:55
Quote Anchor link
Thanks, ik ben geholpen en weer stuk wijzer betreft SQL :)
 
Thomas van den Heuvel

Thomas van den Heuvel

29/11/2019 14:25:30
Quote Anchor link
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>.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.