⊗ppSpPDNP 62 of 83 menu

Automatyczne umieszczanie placeholderów w cudzysłowach w PDO w PHP

Technicznie rzecz biorąc, PDO wszystkie wstawiane wartości umieszcza w cudzysłowach, traktując je jako ciągi znaków, nawet jeśli faktycznie są to liczby. Jest to dopuszczalne przez składnię SQL. Dlatego placeholderów nie trzeba umieszczać w cudzysłowach, jeśli masz wartość typu string.

Spójrzmy na przykład. Załóżmy, że w zmiennej przechowywany jest ciąg znaków:

<?php $name = 'name1'; ?>

Pozycjonalnego placeholder'a nie trzeba umieszczać w cudzysłowie w tym przypadku:

<?php $sql = 'SELECT * FROM users WHERE name=?'; $res = $pdo->prepare(); $res->execute([$name]); ?>

Named placeholder'a również nie trzeba umieszczać w cudzysłowie:

<?php $sql = 'SELECT * FROM users WHERE name=:name'; $res = $pdo->prepare(); $res->execute(['name' => $name]); ?>

To, że w zapytaniu zawsze będą ciągi znaków, niemniej czasami może prowadzić do problemów ze składnią SQL - tam, gdzie zgodnie ze składnią wymagane są liczby. W tym przypadku można skorzystać z alternatywnego sposobu wiązania parametrów, który omówimy w kolejnych lekcjach.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć