Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Errore

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794

    Errore

    Salve a tutti,

    ho questo codice che mi permette di copiare il contenuto di un file .sql nel mio database. Fino a poco tempo fa funzionava e ora mi dà questo errore:
    Strict Standards: Only variables should be passed by reference in /web/htdocs/www.eltipicoitaliano.com/home/import.php on line 31

    $mysqlDatabaseName ='DB';
    $mysqlUserName ='UserDB';
    $mysqlPassword ='PWDB';
    $mysqlHostName ='HOSTDB';
    $mysqlImportFilename ='nomefile.sql';
    //DONT EDIT BELOW THIS LINE
    //Export the database and output the status to the page
    if (file_exists($mysqlImportFilename)) {
    $command='mysql -h' .$mysqlHostName .' -u' .$mysqlUserName .' -p' .$mysqlPassword .' ' .$mysqlDatabaseName .' < ' .$mysqlImportFilename;
    exec($command,$output=array(),$worked); -----> Line 31

    Qualcuno potrebbe aiutarmi?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    764
    sostituisci così:
    Codice PHP:
    $output = array();
    exec($command$output$worked); 
    eXvision

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Quote Originariamente inviata da brodik Visualizza il messaggio
    sostituisci così:
    Codice PHP:
    $output = array();
    exec($command$output$worked); 
    Niente, mi esce pagina bianca.

    Di seguito introduco resto del codice.

    switch($worked){
    case 0:
    unlink ('tienda/BBDD/factusolweb.sql');
    ?>
    <script>
    alert ("La base de datos ha sido actualizada correctamente.");
    document.location.href="administracion.php";
    </script>
    <?
    //echo 'Import file <b>' .$mysqlImportFilename .'</b> successfully imported to database <b>' .$mysqlDatabaseName .'</b>';
    break;
    case 1:
    echo 'There was an error during import. Please make sure the import file is saved in the same folder as this script and check your values:<br/><br/><table><tr><td>MySQL Database Name:</td><td><b>' .$mysqlDatabaseName .'</b></td></tr><tr><td>MySQL User Name:</td><td><b>' .$mysqlUserName .'</b></td></tr><tr><td>MySQL Password:</td><td><b>NOTSHOWN</b></td></tr><tr><td>MySQL Host Name:</td><td><b>' .$mysqlHostName .'</b></td></tr><tr><td>MySQL Import Filename:</td><td><b>' .$mysqlImportFilename .'</b></td></tr></table>';
    break;
    }
    }
    else
    {
    ?>
    <script>
    alert ("La base de datos ya ha sido actualizada anteriormente.");
    document.location.href="administracion.php";
    </script>
    <?
    }
    }

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova a mettere $output = array() fuori dalla chiamata a exec, dove metterai solo $output

    edit: postato troppo tardi

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prova a fare echo di $command e controlla che la stringa sia esattamente quella che ti aspetti, a me sembra che manchi qualche spazio tra i parametri

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Quote Originariamente inviata da clasku Visualizza il messaggio
    prova a fare echo di $command e controlla che la stringa sia esattamente quella che ti aspetti, a me sembra che manchi qualche spazio tra i parametri
    Ho stampato sia la variabile worked che command e questo è il risultato:

    worked: 127
    Command: mysql -hHOST -uUTENTE -pPASSWORD NOME_DB < tienda/BBDD/factusolweb.sql

    Il valore di worked restituito non permette di entrare nello switch case successivo, mi devo aspettare che restituisca 0 o 1 ma restituisce 127 e non so perché.

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    allora:
    - 127 non è un errore di MySQL (forse "command not found")
    - il commando, a mia logica, dovrebbe essere mysql -h HOST -u UTENTE -p PASSWORD NOME_DB < tienda/BBDD/factusolweb.sql
    ​Nota gli spazi dopo dopo "-h", "-u" e "-p"
    Ultima modifica di clasku; 09-04-2016 a 11:08

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Quote Originariamente inviata da clasku Visualizza il messaggio
    allora:
    - 127 non è un errore di MySQL (forse "command not found")
    - il commando, a mia logica, dovrebbe essere mysql -h HOST -u UTENTE -p PASSWORD NOME_DB < tienda/BBDD/factusolweb.sql
    ​Nota gli spazi dopo dopo "-h", "-u" e "-p"

    Funziona!

    Era un problema di spazi.

    Grazie mille per tutto

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    794
    Ciao clasku.

    Ho di nuovo lo stesso problema nel codice php, nel senso che non copia il contenuto del file .sql nel mio DB.

    Ho lasciato il codice così come mi hai indicato tu l'ultima volta ed ha funzionato per alcune volte e da oggi non funziona più.

    Stesso problema.

    Sapresti dirmi come mai?

    Ti ringrazio infinitamente.

  10. #10
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    hai provato a verificare cosa contiene $command mostrandolo a video?
    nel caso sembri giusto puoi anche copiarlo e incollarlo nel terminale e lanciarlo per vedere cosa succede

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 © 2024 vBulletin Solutions, Inc. All rights reserved.