ავტომატურად პლეისჰოლდერების ბრჭყალებში მოქცევა PDO-ში PHP-ში
ტექნიკურად, PDO ყველა ჩასახულ მნიშვნელობას ბრჭყალებში აკეთებს, როგორც სტრიქონებად მიუხედავად იმისა, რომ რეალურად ისინი რიცხვებია. ეს დასაშვებია SQL-ის სინტაქსით. ამიტომ, პლეისჰოლდერები არ საჭიროებს ბრჭყალებში მოქცევას, თუ თქვენ გაქვთ სტრიქონული მნიშვნელობა.
მოდით შევხედოთ მაგალითს. დავუშვათ, რომ ჩვენს ცვლადში ინახება სტრიქონი:
<?php
$name = 'name1';
?>
პოზიციური პლეისჰოლდერი არ საჭიროებს სტრიქონში მოქცევას ამ შემთხვევაში:
<?php
$sql = 'SELECT * FROM users WHERE name=?';
$res = $pdo->prepare();
$res->execute([$name]);
?>
დასახელებული პლეისჰოლდერი ასევე არ საჭიროებს სტრიქონში მოქცევას:
<?php
$sql = 'SELECT * FROM users WHERE name=:name';
$res = $pdo->prepare();
$res->execute(['name' => $name]);
?>
ის ფაქტი, რომ მოთხოვნაში ყოველთვის იქნება სტრიქონები, მაინც შეიძლება ზოგჯერ გამოიწვიოს პრობლემები SQL-ის სინტაქსთან - იქ, სადაც სინტაქსის მიხედვით აუცილებლად საჭიროა რიცხვები. ამ შემთხვევაში შეგიძლიათ გამოიყენოთ პარამეტრების მიბმის ალტერნატიული მეთოდი, რომელსაც განვიხილავთ შემდეგ გაკვეთილებში.