[POSTGRESQL-PHP-XML]

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Xeyos
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 463
Iscrizione: lunedì 26 maggio 2008, 14:16

[POSTGRESQL-PHP-XML]

Messaggio da Xeyos »

Ciao a tutti ragazzi,
il mio problema è che non riesco a fare l'upload di un file xml all'interno di una tabella con un unico campo di tipo xml.
partiamo con ordine.
POSTGRESQL unica tabella testxml con unica colonna xml di tipo xml.

la mia Vista

Codice: Seleziona tutto

<form method="post" action="<?php echo URL;?>controller/testXML" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file" id="file"><br>
    <input type="submit" name="submit" value="Submit">
</form>
il mio controller

Codice: Seleziona tutto

public function testXML() {
        $this->model->textXML($_FILES['file']);
        //redirect
    } 
il mio modello

Codice: Seleziona tutto

public function textXML($fileXML) {
        $sth = $this->db->prepare("INSERT into testxml (xml) VALUES (XMLPARSE(DOCUMENT $fileXML))");
        $sth->execute();
    }
Nessun errore, però nella tabella non viene inserito niente.
Sapete dirmi dove sbaglio?
Grazie in anticipo.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [POSTGRESQL-PHP-XML]

Messaggio da Zoff »

$_FILES['file'] è un array che contiene i seguenti valori:
"name"
"type"
"tmp_name"
"error"
"size"

Non credo sia quello che vuoi passare alla query.
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Xeyos
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 463
Iscrizione: lunedì 26 maggio 2008, 14:16

Re: [POSTGRESQL-PHP-XML]

Messaggio da Xeyos »

No infatti stavo guardando proprio quello, io voglio passare tutto il contenuto del file /o il file stesso che arriva via post.
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [POSTGRESQL-PHP-XML]

Messaggio da Zoff »

Il contenuto si trova all'interno del file il cui nome è indicato in $_FILES['file']['tmp_name']
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Xeyos
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 463
Iscrizione: lunedì 26 maggio 2008, 14:16

Re: [POSTGRESQL-PHP-XML]

Messaggio da Xeyos »

si ho provato e ho visto che stampa però non lo visualizzo in formato xml e quindi non lo salva sul database.

dato il contenuto xml

Codice: Seleziona tutto

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://www.netbeans.org/ns/project/1">
    <type>org.netbeans.modules.php.project</type>
    <configuration>
        <data xmlns="http://www.netbeans.org/ns/php-project/1">
            <name>mvc</name>
        </data>
    </configuration>
</project>
se stampo il contenuto

Codice: Seleziona tutto

print_r(file_get_contents($_FILES['file']['tmp_name']);
die();
l'output è
org.netbeans.modules.php.project mvc

mentre se concateno prima simplexml_load_file l'output è si in xml ma con errori
Warning: simplexml_load_file(): I/O warning : failed to load external entity "<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://www.netbeans.org/ns/project/1"> <type>org.netbeans.modules.php.project</type> <configuration> <data xmlns="http://www.netbeans.org/ns/php-project/1"> <name>mvc</name> </data> </configuration> </project> " in PATH
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [POSTGRESQL-PHP-XML]

Messaggio da Zoff »

Se usi simplexml_load_file devi passargli il file, quindi:

Codice: Seleziona tutto

$xmlDoc =  simplexml_load_file($_FILES['file']['tmp_name'])
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Xeyos
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 463
Iscrizione: lunedì 26 maggio 2008, 14:16

Re: [POSTGRESQL-PHP-XML]

Messaggio da Xeyos »

Si mi ero accorto dell'errore Zoff, non so se ora è la insert il problema.
Errore stupido due volte la load, quello era il motivo. Pero anche con simplexml_load_file solo non lo salva sul db
Avatar utente
Zoff
Moderatore Globale
Moderatore Globale
Messaggi: 33338
Iscrizione: mercoledì 10 ottobre 2007, 22:36

Re: [POSTGRESQL-PHP-XML]

Messaggio da Zoff »

Non sono pratico di postgresql, ma ad occhio quella query si occupa anche del parsing, quindi chello che ti serve è solo il contenuto del file.
Nel browser vedevi solo il testo perché i tag venivano rimossi dal browser.

Questo dovrebbbe andare:

Codice: Seleziona tutto

public function textXML($fileXML) {
        $xmlString = file_get_contents($fileXML['tmp_name']);
        $sth = $this->db->prepare("INSERT into testxml (xml) VALUES (XMLPARSE(DOCUMENT :xmlString))");
        $sth->execute(array( 'xmlString' => $xmlString ));
    }
Prima di aprire una discussione leggi le Guide, poi vedi se c'è un HowTo nel Wiki e fai una ricerca nel Forum!
Applica semplicemente il [Risolto]! Prova: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=548821
Vuoi qualcosa di piu' dal forum? Prova i miei script: http://forum.ubuntu-it.org/viewtopic.php?f=70&t=597066
Xeyos
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 463
Iscrizione: lunedì 26 maggio 2008, 14:16

Re: [POSTGRESQL-PHP-XML]

Messaggio da Xeyos »

mmm per qualche motivo non lo vede come tipo xml mi sa, perchè non salva niente.
Xeyos
Scoppiettante Seguace
Scoppiettante Seguace
Messaggi: 463
Iscrizione: lunedì 26 maggio 2008, 14:16

Re: [POSTGRESQL-PHP-XML]

Messaggio da Xeyos »

pace metterò il tipo di tabella a text non dovrebbe cambiarmi la vita... Perchè poi ho provato a inserire manualmente nella tabella un XML e da un errore. Cercando in giro sembra necessario configurare qualcosa in postgres, se trovo la soluzione la posto...
Avatar utente
jackynet92
Moderatore Globale
Moderatore Globale
Messaggi: 13413
Iscrizione: sabato 3 settembre 2011, 1:41
Desktop: Mate
Distribuzione: Ubuntu 16.04 64bit
Sesso: Maschile
Località: Torino

Re: [POSTGRESQL-PHP-XML]

Messaggio da jackynet92 »

Il forum non è una chat, se devi aggiungere informazioni dopo pochi minuti, clicca su modifica e inserisci tutto preceduto da EDIT
:ciao:
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 3 ospiti