Visualizzazione dei risultati da 1 a 8 su 8

Discussione: ereg_replace problema

  1. #1
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    ereg_replace problema

    Data una stringa

    Codice PHP:
    $str_insert "INSERT INTO tabella (id) VALUES ('1')"
    Vorrei aggiungere dei valori per far diventare la stringa così:
    Codice PHP:
    $str_insert "INSERT INTO tabella (nome, id) VALUES ('pippo', '1')"
    Ho provato a fare così:
    Codice PHP:
    $str_insert ereg_replace("INSERT INTO tabella (""INSERT INTO tabella ( nome, "$str_insert);

    $str_insert ereg_replace("VALUES (""VALUES ( 'pippo', "$str_insert); 
    ma mi da errore, da quello che ho capito nel manuale le parentesi tonde si usano per non so quale motivo, e probabilemente questo mi genera l'errore, come si può risolvere?

  2. #2

    Re: ereg_replace problema

    Originariamente inviato da james
    Data una stringa

    Codice PHP:
    $str_insert "INSERT INTO tabella (id) VALUES ('1')"
    Vorrei aggiungere dei valori per far diventare la stringa così:
    Codice PHP:
    $str_insert "INSERT INTO tabella (nome, id) VALUES ('pippo', '1')"
    Ho provato a fare così:
    Codice PHP:
    $str_insert ereg_replace("INSERT INTO tabella (""INSERT INTO tabella ( nome, "$str_insert);

    $str_insert ereg_replace("VALUES (""VALUES ( 'pippo', "$str_insert); 
    ma mi da errore, da quello che ho capito nel manuale le parentesi tonde si usano per non so quale motivo, e probabilemente questo mi genera l'errore, come si può risolvere?
    prova cosi:
    Codice PHP:
    $str_insert ereg_replace("INSERT INTO tabella (""INSERT INTO tabella ( nome, , $str_insert)));

    $str_insert = ereg_replace("VALUES (", "VALUES 'pippo', , $str_insert))); 
    Ciao!

  3. #3
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    Re: Re: ereg_replace problema

    Originariamente inviato da fmortara
    prova cosi:
    Codice PHP:
    $str_insert ereg_replace("INSERT INTO tabella (""INSERT INTO tabella ( nome, , $str_insert)));

    $str_insert = ereg_replace("VALUES (", "VALUES 'pippo', , $str_insert))); 
    mi da un Parse error

  4. #4

    Re: Re: Re: ereg_replace problema

    Originariamente inviato da james
    mi da un Parse error
    si ho visto che è sbagliato...
    quale è l'errore?
    posta il testo!
    Ciao!

  5. #5
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481

    Re: Re: Re: Re: ereg_replace problema

    Originariamente inviato da fmortara
    si ho visto che è sbagliato...
    quale è l'errore?
    posta il testo!
    il file è prova.php:
    Codice PHP:
    <?
    $str_insert 
    "INSERT INTO tabella (id) VALUES ('1')";
    $str_insert ereg_replace("INSERT INTO tabella (""INSERT INTO tabella ( nome, "$str_insert)));
    $str_insert ereg_replace("VALUES (""VALUES ( 'pippo', "$str_insert)));
    ?>

    Parse error: parse error in /prova.php on line 3

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Per quello che vuoi fare non credo che occorino le espressioni regolari.
    Forse non ho capito bene il tuo problema ma comunque ti allego uno script.

    Codice PHP:
    <? 

    function prepareStr (&$item1) {
     
    $item1 addslashes($item1); 
     
    $item1 "'$item1'";
    }

    $str_insert "INSERT INTO tabella (#) VALUES (@)";
    $arrFields  = array();
    $arrValues  = array();
    //
    $arrFields[0] = 'id';
    $arrFields[1] = 'nome';
    $arrFields[2] = 'cognome';
    //
    $arrValues[0] = "120";
    $arrValues[1] = "umberto";
    $arrValues[2] = "dell'aquila";
    //
    $str_insert str_replace("#",implode(',',$arrFields),$str_insert);
    array_walk ($arrValues'prepareStr');
    $str_insert str_replace("@",implode(',',$arrValues),$str_insert);

    print 
    "1 -> $str_insert";
    print 
    "
    "
    ;
    $arrFields  = array();
    $arrValues  = array();
    //
    $arrFields[0] = 'id';
    $arrFields[1] = 'nome';
    $arrFields[2] = 'cognome';
    //
    $arrValues[0] = "120";
    $arrValues[1] = "umberto";
    $arrValues[2] = "dell'aquila";
    //
    $fieldList implode(',',$arrFields);
    array_walk ($arrValues'prepareStr');
    $dataList implode(',',$arrValues);
    $str_insert "INSERT INTO tabella ($fieldList) VALUES ($dataList)";
    print 
    "2 -> $str_insert";
    ?>

  7. #7
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Originariamente inviato da badaze
    Per quello che vuoi fare non credo che occorino le espressioni regolari.
    Forse non ho capito bene il tuo problema ma comunque ti allego uno script.

    Codice PHP:
    <?
    $str_insert 
    "INSERT INTO tabella (#) VALUES (@)";
    ?>
    Grazie dell'impegno, ma non conosco a priori la stringa insert. Mi arriva una stringa già bella e fatta e devo aggiungerci un campo ed un valore. Il problema è che per far questo devo per forza sostituire "INSERT INTO nome_tabella (" con "INSERT INTO nome_tabella (campo_nuovo, " ma se la scrivo così mi da errore, se la scrivo così "INSERT INTO nome_tabella \(" non mi da errore ma non mi trova l'occorrenza. Stesse funzioni provate a parte su uno script nuovo vanno...

    Non esiste una funzione che fa questo lavoro senza usare le espressioni regolari che non ci capisco nulla?!

  8. #8
    Utente di HTML.it L'avatar di james
    Registrato dal
    Jun 2002
    Messaggi
    1,481
    Volete sapere perchè non funzionava?! Perchè la stringa insert era scritta così:

    $str_insert = "INSERT INTO
    (campi..";

    e quindi non trovava l'occorrenza perchè tra INSERT INTO e ( c'è un carattere di linea nuova! Come lo scrivo il carattere di linea nuova dentro il ereg_replace??

    Ho provato con
    Codice PHP:
    $str_insert ereg_replace("INSERT INTO nome_tabella \r\(""INSERT INTO nome_tabella (campo_nuovo"$str_insert); 
    ma non funziona

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.