✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Korzystanie ze sprintf i LIKE w zapytaniach SQL w WordPress

26

Podczas pracy z zapytaniami w WordPress zawsze najlepiej jest przygotować zapytanie przed jego uruchomieniem; jeśli jednak łączysz się z interfejsem API innej firmy lub pracujesz z innym wariantem SQL (takim jak Transact-SQL), może to wyglądać nieco inaczej.

Gdyby tylko bazy danych były naprawdę takie zgrabne.

TL;DR tego wszystkiego polega na tym, że obsługa sprintf i LIKE w T-SQL wymaga pewnej strategicznej obsługi. A przykładowy kod w następnej sekcji powinien zawierać wszystko, czego potrzebujesz.

sprintf i LIKE w SQL

Trochę tła problemu:

Załóżmy, że pracujesz nad projektem, w którym wywołujesz API innej firmy, a wspomniane API używa T-SQL do łączenia się ze swoją bazą danych.

Co więcej, powiedzmy, że chcesz pobrać rekordy, które zawierają segment łańcucha, który ma być odpytywany (no wiesz, klauzula LIKE ). Zastrzeżenie polega na tym, że nie możesz użyć standardowej funkcji przygotowania dostarczanej przez WordPress, więc decydujesz się na użycie sprintf, aby pomóc w oczyszczeniu przychodzących informacji.

Ponieważ sprintf używa %sdla stringów i ponieważ używasz klauzuli LIKE%, która również wymaga, jak radzić sobie z przypadkiem użycia obu?

Oto przykład, jak to może działać w Twoim przypadku:

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

Oczywiście nadal myślę o użyciu jakiegoś rodzaju ucieczki w $namekłótni, ale jest wiele różnych sposobów na zrobienie tego i jest to poza celem tego postu.

Krótko mówiąc, prefiks i sufiks %sz %%i powinieneś być gotowy.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów