Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    366

    errore sintassi inserimento dati in db?

    Ciao,
    sto provando a creare la prima applicazione che si collega al database. Sto seguendo la guida postata qua sul sito html.it (php + mysql)

    Quando accedo alla pagina che riceve i dati tramite POST e dovrebbe inserirli nel database, mi restituice il seguente errore:

    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 'TO libreria (autore,titolo,pagine,genere) VALUES ("coelho","paulo","1' at line 1
    Una cosa che ho notato, è che la query sembra troncata. Finisce con un 1 (quando il numero aveva più cifre), manca il resto della query (l'altro campo chiuse virgolette e parentesi).

    copio il codice copiato dalla guida, che sto usando io


    Questo è il file che descrive la classe, al cui interno ci sono le funzioni (io per ora chiamo la funzione "inserisci")

    Codice PHP:
    <?php

    class MysqlClass
    {
        
    // parametri per la connessione al database
        
    private $nomehost "localhost";
        private 
    $nomeuser "***";
        private 
    $password "***";
        private 
    $nomedb "***";

        
    // controllo sulle connessioni attive
        
    private $attiva false;

        
    // funzione per la connessione a MySQL
        
    public function connetti()
        {
            if(!
    $this->attiva)
            {
                if(
    $connessione mysql_connect($this->nomehost$this->nomeuser$this->password) or die (mysql_error()))
                {
                    
    // selezione del database
                    
    $selezione mysql_select_db($this->nomedb,$connessione) or die (mysql_error());
                }
            }
            else {
                return 
    true;
            }
        }
        
        
        
    // funzione per la chiusura della connessione
        
    public function disconnetti()
        {
            if(
    $this->attiva)
            {
                if(
    mysql_close())
                {
                    
    $this->attiva false;
                    return 
    true;
                }
                else {
                    return 
    false;
                }
            }
        }
        
        
        
        
    // funzione per l'esecuzione delle query
        
    public function query($sql)
        {
            if(isset(
    $this->attiva))
            {
                
    $sql mysql_query($sql) or die (mysql_error());
                return 
    $sql;
            }
            else {
                return 
    false;
            }
        }
        
        
        
        
    // funzione per l'inserimento dei dati in una tabella
        // $t: il nome della tabella in cui effettuare l'inserimento
        // $v: i valori da inserire
        // $r: i campi da popolare tramite i valori specificati dall'argomento precedente
        
    public function inserisci($t,$v,$r null)
        {
            if(isset(
    $this->attiva))
            {
                
    $istruzione 'INSERT TO '.$t;
                
                if(
    $r != null)
                {
                    
    $istruzione .= ' ('.$r.')';
                }
                
                for(
    $i 0$i count($v); $i++)
                {
                    if(
    is_string($v[$i]))
                    {
                        
    $v[$i] = '"'.$v[$i].'"';
                    }
                }
                
                
    $v implode(',',$v);
                
    $istruzione .= ' VALUES ('.$v.')';
                
                
    $query mysql_query($istruzione) or die (mysql_error());
            }
            else {
                return 
    false;
            }
        }
        
        
        
        
        
    // funzione per l'estrazione dei record
        
    public function estrai($risultato)
        {
            if(isset(
    $this->attiva))
            {
                
    $r mysql_fetch_object($risultato);
                return 
    $r;
            }
            else {
                return 
    false;
            }
        }
        
    }

    ?>

    In una pagina php, utilizzo tale funzione della classe

    Codice PHP:
    <?php
    // inclusione del file contenente la classe
    include "funzioni_mysql.php";

    // istanza della classe
    $data = new MysqlClass();

    // connessione a MySQL
    $data->connetti();

    // definizione delle variabili da passare alla funzione per l'inserimento dei dati
    $t "libreria";    // nome della tabella
    $v = array ($_POST['autore'], $_POST['titolo'], $_POST['pagine'], $_POST['genere']);    // valori da inserire
    $r "autore,titolo,pagine,genere";    // campi da riempire

    // chiamata alla funzione per l'inserimento dei dati
    $data->inserisci($t,$v,$r);

    // disconnessione
    $data->disconnetti;
    ?>

    Da cosa può essere dovuto?

    Grazie!

  2. #2
    INSERT INTO e non INSERT TO
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Posso sbagliare in quanto i dialetti di sql sono molti ma nel metodo inserisci è scritto INSERT TO mentre dovrebbe essere INSERT INTO.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    366
    Grazie mille!!

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.