⊗ppSpPDPP 60 of 83 menu

ตัวยึดตำแหน่งใน PDO ของ PHP

มาดูกันว่าเราจะทำงานกับตัวยึดตำแหน่งได้อย่างไร สมมติเรามีตัวแปรสองตัว ที่เราต้องการใส่ลงในคำสั่งค้นหา:

<?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 ลงใน โค้ดของคุณ ตรวจสอบให้แน่ใจว่ามันจะไม่ผ่าน

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ