PHP හි PDO හි ස්ථානගත තැනීම් ස්ථාන
ස්ථානගත තැනීම් ස්ථාන සමඟ වැඩ කරන්නේ කෙසේදැයි අපි බලමු. අපට විචල්ය දෙකක් ඇතැයි සිතමු, අපි විමසුමට ඇතුළු කිරීමට අවශ්ය:
<?php
$min = 1;
$max = 5;
?>
අපගේ විචල්යයන් ඇතුළු කිරීමට අපට අවශ්ය ආකාරය මෙය යැයි සිතමු:
<?php
$sql = "SELECT * FROM users WHERE id>$min and id<$max";
?>
කෙසේ වෙතත්, මෙය කිරීම ආරක්ෂිත නොවේ. එම නිසා, විචල්යයන් සෘජුවම ඇතුළු කිරීම වෙනුවට, ඒවා ස්ථානගත තැනීම් ස්ථාන සමඟ ප්රතිස්ථාපනය කරමු, ප්රශ්න ලකුණු වේ:
<?php
$sql = 'SELECT * FROM users WHERE id>? and id<?';
?>
දැන් අපි විධානය ක්රියාත්මක කරමු, එය සකස් කරනු ඇත විමසුම:
<?php
$res = $pdo->prepare($sql);
?>
දැන් අපි විමසුම ක්රියාත්මක කරමු, එයට පරාමිති ලෙස අපගේ විචල්යයන් අඩංගු අරාව පවරමු. මෙහිදී විචල්යයන් අරාවේ දක්වා ඇති අනුපිළිවෙලටම විමසුමට ඇතුළු කරනු ලැබේ:
<?php
$res->execute([$min, $max]);
?>
ඊට පසු, අපට විමසුමේ ප්රතිඵලය ලබා ගත හැකිය:
<?php
while ($row = $res->fetch()) {
var_dump($row);
}
?>
සියල්ල එකට එකතු කර පහත කේතය ලබා ගනිමු:
<?php
$min = 1;
$max = 5;
$sql = 'SELECT * FROM users WHERE id>? and id<?';
$res = $pdo->prepare($sql);
$res->execute([$min, $max]);
while ($row = $res->fetch()) {
var_dump($row);
}
?>
විචල්යයන් ලබා දී ඇත:
<?php
$age = 30;
$salary = 1000;
?>
සියලුම පරිශීලකයන් සොයන්න, වයස හෝ වැටුප විචල්යයන් තුළ ලබා දී ඇති අගයන්ට සමාන වන.
ඔබගේ කේතයට SQL ආනයනයක් (injection) කිරීමට උත්සාහ කරන්න. එය සාර්ථක නොවන බවට වග බලා ගන්න.