Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    248

    Problema di sintassi con il comando CREATE TABLE

    Sono 2 ore che cerco sul web ma non riesco a venirne a capo, vorrei creare delle tabelle dinamicamente passando una variabile come nome della tabella, solo che continua a darmi errore di sintassi.
    Il mio codice è:
    [CODE]
    mysql_query("CREATE TABLE ".$categoria." (
    id INT( 255 ) NULL AUTO_INCREMENT PRIMARY KEY ,
    immagine VARCHAR( 1000 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL ,
    descrit VARCHAR( 1000 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL ,
    descren VARCHAR( 1000 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL ,
    timestamp TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
    ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;")or die(mysql_error());
    [CODE]
    L'errore che mi da
    codice:
     You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( id INT( 255 ) NULL AUTO_INCREMENT PRIMARY KEY , immagine VARCHAR( 1000 ) CHARA' at line 1
    L'errore è unicamente nel modo in cui passo $categoria, ho provato anche senza doppie virgolette e . solo con i due apici, con i 2 apici e il ., senza nulla, in tutti i modi possibili, qualcuno sa dirmi come è la sintassi per passare una variabile come argomento del create table??? Grazie infinite

  2. #2

    Re: Problema di sintassi con il comando CREATE TABLE

    Originariamente inviato da joint77
    Sono 2 ore che cerco sul web ma non riesco a venirne a capo, vorrei creare delle tabelle dinamicamente passando una variabile come nome della tabella, solo che continua a darmi errore di sintassi.
    Il mio codice è:
    [CODE]
    mysql_query("CREATE TABLE ".$categoria." (
    id INT( 255 ) NULL AUTO_INCREMENT PRIMARY KEY ,
    immagine VARCHAR( 1000 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL ,
    descrit VARCHAR( 1000 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL ,
    descren VARCHAR( 1000 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL ,
    timestamp TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP
    ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;")or die(mysql_error());
    [CODE]
    L'errore che mi da
    codice:
     You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '( id INT( 255 ) NULL AUTO_INCREMENT PRIMARY KEY , immagine VARCHAR( 1000 ) CHARA' at line 1
    L'errore è unicamente nel modo in cui passo $categoria, ho provato anche senza doppie virgolette e . solo con i due apici, con i 2 apici e il ., senza nulla, in tutti i modi possibili, qualcuno sa dirmi come è la sintassi per passare una variabile come argomento del create table??? Grazie infinite
    questo sarebbe argomento per il forum Database, non per Php.

    Hai provato a stampare la query interamente? cosa riporta? $categoria assume effettivamente un valore o rimane vuota?

    Inoltre rivedrei profondamente la dimensione dei campi, INT al massimo è da 10 bit e lo farei anche unsigned, perchè dubito che avrai bisogno di ID negativi. Stessa cosa dicasi per i varchar, al massimo arrivano a 255 caratteri, a meno che non hai una versione di mysql >= 5.0.3

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Controlla che la variabile $categoria non sia vuota.
    Non dire che c'è il nome della tabella senza averlo testato con una echo.

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    248
    Infatti era un problema di variabile, grazie per i consigli

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.