แก้ไขคำตอบแล้ว
หลังจากมีประสบการณ์กับ API ทั้งสองนี้แล้วฉันจะบอกว่ามีคุณลักษณะระดับการบล็อก 2 รายการซึ่งทำให้ mysqli ใช้ไม่ได้กับคำสั่งที่เตรียมมา
พวกเขาถูกกล่าวถึงแล้วใน 2 คำตอบที่ยอดเยี่ยม (ยัง underrated วิธี):
- ค่าการเชื่อมโยงกับจำนวนตัวยึดตำแหน่งโดยพลการ
- การส่งคืนข้อมูลเป็นอาร์เรย์อย่างเดียว
(ทั้งที่กล่าวถึงในคำตอบนี้ )
ด้วยเหตุผลบางอย่าง mysqli จึงล้มเหลวทั้งสองอย่าง
ทุกวันนี้มันมีการปรับปรุงบางอย่างสำหรับอันที่สอง ( get_result ), แต่มันทำงานได้เฉพาะในการติดตั้ง mysqlnd, หมายความว่าคุณไม่สามารถพึ่งพาฟังก์ชั่นนี้ในสคริปต์ของคุณได้
แต่ถึงกระนั้นก็ยังไม่มีการผูกมัดแม้กระทั่งทุกวันนี้
ดังนั้นจึงมีเพียงทางเลือกเดียวคือPDO
เหตุผลอื่นทั้งหมดเช่น
- ชื่อตัวยึดตำแหน่ง (น้ำตาลไวยากรณ์นี้เป็นวิธี overrated)
- รองรับฐานข้อมูลที่แตกต่างกัน (ไม่มีใครเคยใช้จริง)
- ดึงเข้าไปในวัตถุ (เพียงน้ำตาลไวยากรณ์ไร้ประโยชน์)
- ความแตกต่างความเร็ว (ไม่มี)
ไม่มีความสำคัญใด ๆ
ในขณะเดียวกัน API ทั้งสองนี้ยังขาดคุณสมบัติที่สำคัญบางอย่างเช่น
- ตัวระบุตัวแทน
- ตัวยึดตำแหน่งสำหรับชนิดข้อมูลที่ซับซ้อนเพื่อให้การเชื่อมโยงแบบไดนามิกน้อยกว่าลำบาก
- รหัสแอปพลิเคชันที่สั้นกว่า
ดังนั้นเพื่อให้ครอบคลุมความต้องการในชีวิตจริงเราต้องสร้างห้องสมุดนามธรรมของตนเองขึ้นอยู่กับหนึ่งใน API เหล่านี้โดยใช้ตัวยึดตำแหน่งแบบแยกวิเคราะห์ด้วยตนเอง ในกรณีนี้ฉันชอบ mysqli เพราะมันมีระดับความเป็นนามธรรมที่น้อยกว่า