✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Utilizzo di sprintf e LIKE nelle query SQL in WordPress

30

Quando si lavora con le query in WordPress, è sempre meglio preparare la query prima di eseguirla; tuttavia, se ti capita di interfacciarti con un’API di terze parti o di lavorare con un’altra variante di SQL (come Transact-SQL), le cose potrebbero funzionare in modo leggermente diverso.

Se solo i database fossero davvero così ordinati.

Il TL; DR di tutto questo è che la gestione di sprintf e LIKE in T-SQL richiede una gestione strategica. E l’esempio di codice nella sezione successiva dovrebbe fornire tutto ciò di cui hai bisogno.

sprintf e LIKE in SQL

Alcuni retroscena sul problema in questione:

Supponiamo che tu stia lavorando a un progetto in cui stai effettuando chiamate a un’API di terze parti e la suddetta API utilizza T-SQL per interfacciarsi con il suo database.

Inoltre, supponiamo che tu voglia recuperare record che hanno un segmento della stringa da interrogare (sai, una clausola LIKE ,). L’avvertenza è che non puoi utilizzare la funzione di preparazione standard fornita da WordPress, quindi scegli di utilizzare sprintf per aiutare a disinfettare le informazioni in arrivo.

Poiché sprintf utilizza %sper le stringhe e poiché stai utilizzando una clausola LIKE% che richiede anche, come si gestisce il caso di utilizzo di entrambi?

Ecco un esempio di come potrebbe funzionare per te:

<?php
/**
 * Queries a third-party API using sprintf and a LIKE clause to retrieve the users 
 * with a last name like the specified argument.
 * 
 * @param string $lastName An unsanitized version of the user's last name.
 */
public function getUserByLastName(string $lastName)
{
    // Sanitize the argument as you see fit here.

    $query = sprintf("
        SELECT FIRST_NAME, LAST_NAME
        FROM USERINFO
        WHERE LAST_NAME LIKE '%%%s%%'
    ", $lastName);

    // Make a query to the third-party API here.
}

Ovviamente, penso ancora di usare un qualche tipo di evasione $namesull’argomento, ma ci sono diversi modi per farlo ed è oltre lo scopo di questo post.

In breve, prefisso e suffisso %scon %%e dovresti essere a posto.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More