[MySQL] Problema di sintassi?

  • Creatore Discussione Creatore Discussione jonnyf
  • Data di inizio Data di inizio

jonnyf

Nuovo Utente
24 Ago 2018
1
0
1
Ciao a tutti sto cercando di creare una pagina di creare un db da una pagina php. Ma al momento di mandare in esecuzione la pagina e quindi creare il database Mysql il browser mi restituisce questo errore:

You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' movie_name varchar(255) NOT NULL, movie_type TINYINT NOT NULL DEFAULT 0, ' at line 2

Io nel codice ho messo come motore MyISAM e non MariaDB(o ARIA) quindi non capisco il problema anche perchè ho verificato dal pannello di controllo di XAMPP per scrupolo e la versione che uso ancora ha tra i motori MyISAM.

Copio il codice che ho usato grazie a tutti quelli che vorranno darmi una mano.

PHP:
<?php
    $db = mysql_connect('localhost', 'admin', 'pizzaballa') or die ('Non è possibile connettersi. Controllare i parametri di connessione.');
  

    $query = 'CREATE DATABASE IF NOT EXISTS moviesite';
    mysql_query($query, $db) or die(mysql_error($db));

       mysql_select_db('moviesite', $db) or die(mysql_error($db));
  
      $query = 'CREATE TABLE movie (
    movie_id INTEGER UNSIGNED NOT NULL AUTO_INCRMENT,
    movie_name VARCHAR(255) NOT NULL,
    movie_type TINYINT NOT NULL DEFAULT 0,
    movie_year SMALLINT UNSIGNED NOT NULL DEFAULT 0,
    movie_leadactor INTEGER UNSIGNED NOT NULL DEFAULT 0,
    movie_director INTEGER UNSIGNED NOT NULL DEFAULT 0,
  
    PRIMARY KEY (movie_id),
    KEY movie_type (movie_type, movie_year)
    )
    ENGINE=MyISAM';
    mysql_query($query, $db) or die (mysql_error($db));
  
        $query = 'CREATE TABLE movietype (
    movietype_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT,
    movietype_label VARCHAR (100) NOT NULL,
    PRIMARY KEY (movietype_id)
    )
    ENGINE=MyISAM';
    mysql_query($query, $db) or die (mysql_error($db));
  
        $query = 'CREATE TABLE people (
    people_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    people_fullname VARCHAR (255) NOT NULL,
    people_isactor TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
    people_isdirector TYNIINT(1) UNSIGNED NOT NULL DEFAULT 0,
  
    PRIMARY KEY (people_id)
    )
    ENGINE=MyISAM';
    mysql_query($query, $db) or die (mysql_error($db));
  
    echo 'Database movie creato correttamente!';
    ?>
 
Ultima modifica di un moderatore:
ciao
per prima cosa dove i campi sono interi usa INT(nn) dove nn è un numero che definisce di quante cifre l'intero
poi su varchar, ma non so se mi ricordo bene, la lunghezza massima mi sembra 250 quindi VARCHAR(250) se supera usa text o longtext

detto questo attento: abbandona le vecchie istruzioni php mysql (mysql_aaaaa) e èassa a mysqli (mysqli_aaaaaaa) le vecchie mysql sono obsolete.

ultimo, quando scrivi del codice racchiudilo tra gli appositi bccode
 

Discussioni simili