Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    79

    Consigli su come salvare un oggetto php su uno spazio web?

    Salve... sto lavorando su un server in locale(apache)...
    Ho salvato i dati presi in input da una form su di un database Mysql...
    Nel frattempo ho anche creato un oggetto php e volevo salvare l'oggetto sul db (essendoci un oggetto x ogni riga del db), e ho provato a fare:

    serialize($oggetto);

    e salvare cio' che restituiva in una cella del db ma nn sembra funzionare...
    Qualcuno ha dei consigli su come posso salvare un'oggetto su uno spazio web?
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2008
    Messaggi
    218

    Re: Consigli su come salvare un oggetto php su uno spazio web?

    Originariamente inviato da rizz1

    e salvare cio' che restituiva in una cella del db ma nn sembra funzionare...

    Grazie
    Cioè?

  3. #3

    Re: Consigli su come salvare un oggetto php su uno spazio web?

    Originariamente inviato da rizz1
    Salve... sto lavorando su un server in locale(apache)...
    Ho salvato i dati presi in input da una form su di un database Mysql...
    Nel frattempo ho anche creato un oggetto php e volevo salvare l'oggetto sul db (essendoci un oggetto x ogni riga del db), e ho provato a fare:

    serialize($oggetto);

    e salvare cio' che restituiva in una cella del db ma nn sembra funzionare...
    Qualcuno ha dei consigli su come posso salvare un'oggetto su uno spazio web?
    Grazie
    Non salva su database? Posta il codice

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    79
    Allora... io ho un form che prende dei dati in input(stringhe e numeri) e poi li inserisco nel db:

    $data = new mysqlClass("localhost","root","root","cd");
    $data->connetti();
    $t = "relazioni"; // nome della tabella
    $v = array ($mitt,$dest,$id_cert,$rt,$trust,0); // valori da inserire
    $r = "Mittente,Destinatario,idCertificato,rt,trustAccet tatoSiNo"; // campi da popolare
    // chiamata alla funzione per l'inserimento dei dati
    $data->inserisci($t,$v,$r);
    $data->disconnetti();

    e fin qui tt semplice e funzionante
    Nel codice ho creato un oggetto:

    $certificato = new Certificato(...);

    Ora vorrei poter salvare anche l'oggetto certificato nel db o cmq nel mio spazio web in qualche modo, cosi come ho fatto per gli altri dati, in maniera che anche un'altro utente che si logga all'applicazione puo' accedere all'oggetto...
    Pero' gli altri dati sono numeri o stringhe e si salvano facilmente nel db, ma x gli oggetti nn so come fare...
    io ho provato a serializzarlo e salvarlo nel db(ho ipotizzato che il risultato della serializzazione fosse una stringa), ma l'esito nn e' stato buono.
    Spero di esser stato chiaro stavolta...
    Grazie

  5. #5
    Prova ad inviare $certificato al db

  6. #6
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    La teoria è giusta:

    dato un oggetto puoi serializzarlo con serialize e recuperarlo con unserialize

    Codice PHP:
    $obj= new Oggetto();

    $sobj=serialize($obj);
    //Posso mettere $sobj in un file, un DB in una variabile di sessione
    //per utilizzi successivi

    $obj=unserialize($sobj);
    //Supposto in $sobj un oggetto serializzato proveniente da un file, un DB o una variabile 
    //di sessione posso riutilizzare $obj come oggetto 
    Diverso se all'interno del tuo oggetto vengono memorizzati degli handler ovvero dei puntatori arisorse quali file, connessioni db o altro. In tal caso, il puntatore a tali risorse viene conservato e ripristinato ma la risorsa non sarà più disponibile nelle chiamate successive, quindi il serialize non è sufficiente.

    Per finire, l'esito di una serializzazione è una stringa e inquanto tale mi auguro che tu l'abbia sottoposta a escaping prima di passarla alla query.
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    79
    @ Alessio
    Scusa l'ignoranza mia, ma cosa intendi per inviare al db?

    @ Grino
    Ho provato a fare così:
    $Certificato e' un oggetto i cui campi sono tt di tipo stringa e intero

    $data = new mysqlClass("localhost","root","root","cd");
    $data->connetti();
    $t = "certificati"; // nome della tabella
    $v = array ($mitt,$dest,serialize($certificato)); // valori da inserire
    $r = "Mittente,Destinatario,certificato"; // campi da popolare
    // chiamata alla funzione per l'inserimento dei dati
    $data->inserisci($t,$v,$r);
    $data->disconnetti();

    Ma quando eseguo il programma mi da il seguente messaggio:

    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 'Certificato":9:{s:21:"' at line 1

    La colonna certificato nella tabella SQL l'ho definita di tipo VARCHAR(245)...
    Riesci a capire il perchè?
    Grazie

  8. #8
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Posta il codice della classe mysqlClass che ho qualche sospetto!
    Siamo sempre troppo gelosi delle nostre grandi piccole opere! - Grino inedito.
    Lavori e Lavoretti

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    79
    <?php
    class MysqlClass
    {
    // variabili per la connessione al database
    private $nomehost;
    private $nomeuser;
    private $password;
    private $nomedb;


    // controllo sulle connessioni attive
    private $attiva = false;

    // Costruttore
    public function __construct($host,$user,$pass,$db)
    {
    $this->nomehost = $host;
    $this->nomeuser = $user;
    $this->password = $pass;
    $this->nomedb = $db;
    }

    // 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()))
    if($selezione = mysql_select_db($this->nomedb,$connessione) or die (mysql_error()))
    $this->attiva=true;
    }
    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 tabella
    public function inserisci($tab,$val,$campi=null)
    {
    if(isset($this->attiva))
    {
    $istruzione = 'INSERT INTO '.$tab;

    if($campi != null)
    $istruzione .= ' ('.$campi.')';

    for($i = 0; $i < count($val); $i++) //ad ogni valore metto apici prima e dopo
    {
    if(is_string($val[$i]))
    $val[$i] = '"'.$val[$i].'"';
    }

    $val = implode(',',$val); //ogni valore lo separo con la virgola

    $istruzione .= ' VALUES ('.$val.')';

    $query = mysql_query($istruzione) or die (mysql_error());

    }
    else
    return false;

    }


    //funzione per l'estrazione dei record passando il risultato di una query
    public function estrai($risultato)
    {
    if(isset($this->attiva))
    {
    $r = mysql_fetch_object($risultato);
    return $r;
    }
    else
    return false;
    }

    // funzione per la formattazione della data
    public function format_data($d)
    {
    $vet = explode("-", $d);
    $df = $vet[2]."-".$vet[1]."-".$vet[0];
    return $df;
    }
    }
    ?>

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2010
    Messaggi
    79
    Scusami Grino, ma come faccio per mettere un oggetto su un file?

    //Posso mettere $sobj in un file

    Quale funzione php devo usare?

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.