✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Sprintf:n ja LIKE:n käyttö SQL-kyselyissä WordPressissä

20

Kun työskentelet kyselyjen kanssa WordPressissä, on aina parasta valmistella kysely ennen sen suorittamista. Jos kuitenkin satut olemaan yhteydessä kolmannen osapuolen sovellusliittymään tai työskentelet toisen SQL-version (kuten Transact-SQL:n) kanssa, asiat voivat toimia hieman eri tavalla.

Kunpa tietokannat olisivat todella näin siistejä.

Kaiken tämän TL;DR on, että sprintf :n ja LIKE:n käsittely T-SQL:ssä vaatii strategista käsittelyä. Ja seuraavan osan koodinäytteen pitäisi tarjota kaikki tarvitsemasi.

sprintf ja LIKE SQL:ssä

Vähän taustaa käsillä olevasta ongelmasta:

Oletetaan, että työskentelet projektin parissa, jossa soitat puheluita kolmannen osapuolen API:lle ja mainittu API käyttää T-SQL:ää liittyäkseen tietokantaansa.

Oletetaan lisäksi, että haluat noutaa tietueita, joissa on segmentti kyselyssä olevasta merkkijonosta (tiedäthän, LIKE, lauseke). Varoitus on, että et voi käyttää WordPressin tarjoamaa tavallista valmistelutoimintoa, joten päätät käyttää sprintf -toimintoa saapuvien tietojen puhdistamiseen.

Koska sprintf käyttää %smerkkijonoja ja koska käytät LIKE – lausetta, joka edellyttää myös %, miten käsitellä molempien käyttöä?

Tässä on esimerkki siitä, kuinka se voi toimia sinulle:

<?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.
}

Tietenkin olen edelleen sitä mieltä, että käytän jonkinlaista paeta $nameargumentissa, mutta on olemassa useita erilaisia ​​tapoja tehdä tämä, ja se ei ole tämän viestin tarkoitus.

Lyhyesti sanottuna, etuliite ja pääte %skanssa %%ja sinun pitäisi olla hyvä mennä.

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja