Home funzioni istanza classe wpdb

istanza classe wpdb

123
0

In WordPress, il database viene gestito principalmente tramite la classe $wpdb, che è un’istanza predefinita della classe wpdb. Questa classe permette di eseguire query SQL in modo sicuro e diretto, fornendo un’astrazione utile per accedere al database del sito.

Come utilizzare $wpdb

Per accedere al database, è necessario utilizzare la variabile globale $wpdb. La sintassi generale è:

global $wpdb;

Funzioni principali di $wpdb

Ecco i metodi principali che puoi usare per eseguire query:
1. Esecuzione di query generiche: $wpdb->query()

Questo metodo è utilizzato per eseguire query SQL che non restituiscono risultati (ad esempio, INSERT, UPDATE, DELETE, ecc.).

Sintassi:

global $wpdb;
$result = $wpdb->query( "SQL_QUERY" );

Esempio:

global $wpdb;
$wpdb->query( "DELETE FROM {$wpdb->prefix}posts WHERE ID = 10" );

2. Recuperare un singolo valore: $wpdb->get_var()

Questo metodo recupera un singolo valore da una query.

Sintassi:

global $wpdb;
$value = $wpdb->get_var( "SQL_QUERY" );

Esempio:

global $wpdb;
$post_count = $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->prefix}posts WHERE post_status = 'publish'" );
echo "Numero di post pubblicati: $post_count";

3. Recuperare una riga: $wpdb->get_row()

Recupera una singola riga da una query come un oggetto (o come array, se specificato).

Sintassi:

global $wpdb;
$row = $wpdb->get_row( "SQL_QUERY", OUTPUT_TYPE );

    OUTPUT_TYPE: Specifica il formato del risultato. Può essere:
    OBJECT (default): Restituisce un oggetto.
    ARRAY_A: Restituisce un array associativo.
    ARRAY_N: Restituisce un array numerico.

Esempio:

global $wpdb;
$row = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}posts WHERE ID = 1", OBJECT );
echo "Titolo del post: " . $row->post_title;

4. Recuperare più righe: $wpdb->get_results()

Recupera più righe da una query come array di oggetti (o array, se specificato).

Sintassi:

global $wpdb;
$results = $wpdb->get_results( "SQL_QUERY", OUTPUT_TYPE );

Esempio:

global $wpdb;
$results = $wpdb->get_results( "SELECT ID, post_title FROM {$wpdb->prefix}posts WHERE post_status = 'publish'", OBJECT );

foreach ( $results as $post ) {
    echo "Post ID: {$post->ID}, Titolo: {$post->post_title}<br>";
}

5. Recuperare un array associativo: $wpdb->get_col()

Recupera una colonna specifica da una query.

Sintassi:

global $wpdb;
$column = $wpdb->get_col( "SQL_QUERY" );

Esempio:

global $wpdb;
$titles = $wpdb->get_col( "SELECT post_title FROM {$wpdb->prefix}posts WHERE post_status = 'publish'" );

foreach ( $titles as $title ) {
    echo "Titolo: $title<br>";
}

Inserire, Aggiornare e Eliminare dati

1. Inserire dati: $wpdb->insert()

Utilizza questo metodo per inserire dati in modo sicuro.

Sintassi:

$wpdb->insert( TABLE_NAME, DATA_ARRAY, FORMAT_ARRAY );

    TABLE_NAME: Nome della tabella.
    DATA_ARRAY: Array associativo con i dati da inserire (colonna => valore).
    FORMAT_ARRAY: Specifica il tipo dei valori (%s per stringa, %d per interi, %f per decimali).

Esempio:

global $wpdb;
$wpdb->insert(
    "{$wpdb->prefix}posts",
    array(
        'post_title' => 'Nuovo Post',
        'post_content' => 'Contenuto del post',
        'post_status' => 'draft',
        'post_type' => 'post'
    ),
    array(
        '%s', // Stringa
        '%s', // Stringa
        '%s', // Stringa
        '%s'  // Stringa
    )
);

2. Aggiornare dati: $wpdb->update()

Aggiorna i dati in una tabella.

Sintassi:

$wpdb->update( TABLE_NAME, DATA_ARRAY, WHERE_ARRAY, FORMAT_ARRAY, WHERE_FORMAT_ARRAY );

<h3>Esempio:</h3>
[php]
global $wpdb;
$wpdb->update(
    "{$wpdb->prefix}posts",
    array( 'post_status' => 'publish' ), // Nuovi valori
    array( 'ID' => 1 ), // Condizione
    array( '%s' ), // Formato nuovi valori
    array( '%d' )  // Formato condizione
);

3. Eliminare dati: $wpdb->delete()

Elimina righe da una tabella.

Sintassi:

$wpdb->delete( TABLE_NAME, WHERE_ARRAY, WHERE_FORMAT_ARRAY );

Esempio:

global $wpdb;
$wpdb->delete(
    "{$wpdb->prefix}posts",
    array( 'ID' => 10 ), // Condizione
    array( '%d' )       // Formato condizione
);

Sicurezza e Placeholders

Mai inserire dati direttamente nelle query senza sanitizzazione! Usa i placeholder per prevenire attacchi SQL injection:

%s per stringhe.
%d per numeri interi.
%f per numeri decimali.

Esempio con placeholder:

global $wpdb;
$title = 'Titolo sicuro';
$post = $wpdb->get_row( $wpdb->prepare(
    "SELECT * FROM {$wpdb->prefix}posts WHERE post_title = %s",
    $title
) );

Conclusione

La classe $wpdb fornisce un’interfaccia potente e sicura per interagire con il database WordPress. Usando i suoi metodi predefiniti e i placeholder per la sanitizzazione, puoi costruire applicazioni scalabili e sicure.

Previous articleLa variabile $_SERVER[‘HTTP_REFERER’]
Next articlefunzione strtotime()

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.