Visualizzazione risultati 1 fino 4 di 4

Discussione: Estendere/modificare funzione "query" di mysqli

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito Estendere/modificare funzione "query" di mysqli

    Buonasera,
    volevo sapere se c'è modo di estendere o modificare una funzione di mysqli.

    Vi spiego: vorrei creare una serie di statistiche interne basate su files sul numero di query orarie/giornaliere/settimanali usate dai miei script ma mi sono dimenticato di aggiungere una funzione (dopo ogni query) che contasse il numero così avevo in mente di modificare la funzione query di mysqli in modo che incrementasse un file txt.

    E' possibile?
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Se hai php > 5.3, puoi "sovrascrivere" una funzione aggiungendo un namespace.

    Qualcosa del tipo:
    Codice PHP:
    <?php
    namespace Miki;

    function
    mysqli_query( ... )
    {
    // fai cose
    return <backslash>mysqli_query( ... );
    }
    All'interno dello stesso namespace (anche in altri file) la funzione chiamata sarà la tua, e per chiamare quella originale devi indicare il namespace "radice" con uno slash davanti al nome —che purtroppo qua sul forum non appare, quindi ho messo <backslash>

  3. #3
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,233

    Predefinito

    Grazie Dreadnaut,
    come sempre molto utile. Sto provando questi namespace e attualmente ho usato questo codice di prova:

    Codice PHP:
    namespace mik;
    function
    mysqli_query($q){ global $a;
    file_put_contents($a."dati.txt",$q."\n");
    return <
    backslash>mysqli_query($q);
    }
    Questo codice è contenuto in un file "tmp.php" che viene incluso nel file di configurazione che a sua volta è incluso in tutto il sito tuttavia non riesco a trovarmi alcun "dati.txt" nel percorso indicato.

    Sbaglio qualche cosa?

    Il PHP in uso è: 5.4.3
    Ultima modifica di miki92 : 30-05-2013 alle ore 09.34.31
    Apprezzi l'aiuto? Offrimi un caffè!

  4. #4
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Uhm, magari sbagli qualcosa... altrove?

    Per l'override, questo è un esempio completo e funzionante:
    Codice PHP:
    <?php
    namespace gatto;

    function
    print_r($x) {
    echo
    '<p>La mia funzione!';
    echo
    '<pre>';
    <
    backslash>print_r( $x );
    echo
    '</pre>';
    }

    $a = array( 1,2,3 );

    // chiama la versione sopra
    print_r($a);

    // chiama la versione originale
    <backslash>print_r($a);
    Di nuovo, <backslash> va sostituito con uno " \ ".


    Se sei in più file, devi a) aver incluso il file sopra, b) avere namespace gatto; in cima allo script corrente.
    Ultima modifica di dreadnaut : 30-05-2013 alle ore 18.17.02

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •