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-ի շարահյուսության հետ - այնտեղ, որտեղ շարահյուսությամբ պարտադիր թվեր են: Այս դեպքում կարող եք օգտագործել պարամետրերի կապակցման այլընտրանքային եղանակ, որը մենք կքննարկենք հաջորդ դասերում: