Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Parsing di una query sql come parse_url

    Ciao ragazzi,
    prima di postare ho cercato e non ho trovato nulla di simile a quello che cerco io.

    Sto cercando un sistema per fare il parsing di una query sql.

    Cioè, avendo come base una query SELECT vorrei tutta la struttura inserita in un array come per parse_url.

    Es:
    codice:
    $query = "SELECT nome FROM nomi WHERE nome = 'Pippo' ";
    
    $foobar = parse_querysql($query);
    
    print_r($foobar);
    Risultato:
    codice:
    Array
    (
        [SELECT] => nome
        [FROM] => nomi
        [WHERE] =>  nome = 'Pippo' 
    )
    Sto cercando una soluzione utilizzando preg_match ma ho un po' di difficoltà nell'associazione delle chiavi come (SELECT, FROM, WHERE) ai rispettivi valori.


    Qualcuno mi può aiutare?

    Grazie
    Sosia di Rocco Siffredi cerca Lavoro

  2. #2
    prova questo script:
    codice:
    function buildArray(&$values, $select, $from, $join, $where, $group, $order){
    	if ($select!='')$values['SELECT']=$select;
    	if ($from!='')$values['FROM']=$from;
    	if ($join!='')$values['JOIN']=$join;
    	if ($where!='')$values['WHERE']=$where;
    	if ($group!='')$values['GROUP_BY']=$group;
    	if ($order!='')$values['ORDER_BY']=$order;
    	return true;
    }
    
    $query = "SELECT fieldnames FROM tablename INNER JOIN bla bla ON fielname=fielname WHERE fieldname = 'value'  ORDER BY fieldname";
    
    
    $rex = '/^SELECT(.*?)FROM(.*?)((?:INNER|CROSS|NATURAL|LEFT|RIGHT).*?)?(?:WHERE(.*?))?(?:GROUP\s+BY(.*?))?(?:ORDER\s+BY(.*?))?$/ise';
    $rpl = 'buildArray($parsedQuery,\\'$1\\', \\'$2\\', \\'$3\\', \\'$4\\', \\'$5\\', \\'$6\\');';
    
    
    
    $parsedQuery=array();
    preg_replace($rex,$rpl,$query);
    
    
    
    echo '<pre>';
    print_r($parsedQuery);
    echo '</pre>';
    dA .. foto di viaggio
    L'esperienza è il tipo di insegnante più difficile.
    Prima ti fa l'esame, e poi ti spiega la lezione.

  3. #3
    Fantastico! E' quello che cercavo.

    Grazie 1000!
    Sosia di Rocco Siffredi cerca Lavoro

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.