PDO_MYSQL เป็นไดรเวอร์ที่ใช้อินเทอร์เฟซ PHP Data Objects (PDO) เพื่อเปิดใช้งานการเข้าถึงจาก PHP ไปยังฐานข้อมูล MySQL เมื่อเรียกใช้ PHP เวอร์ชันก่อน 7.1.16 หรือ PHP 7.2 ก่อน 7.2.4 ให้ตั้งค่าปลั๊กอินรหัสผ่านเริ่มต้นของเซิร์ฟเวอร์ MySQL 8 เป็น mysql_native_password มิฉะนั้น คุณจะเห็นข้อผิดพลาดที่คล้ายกับเซิร์ฟเวอร์ร้องขอวิธีการตรวจสอบสิทธิ์ที่ไคลเอ็นต์ไม่รู้จัก [caching_sha2_password] แม้ว่าจะ caching_sha2_password ไม่ได้ใช้ นี่เป็นเพราะค่าเริ่มต้นของ MySQL 8 เป็น caching_sha2_password ซึ่งเป็นปลั๊กอินที่ PHP (mysqlnd) รุ่นเก่าไม่รู้จัก ให้เปลี่ยนโดยตั้งค่าเป็น . ปลั๊กอิน caching_sha2_password จะได้รับการสนับสนุนในการเปิดตัว PHP ในอนาคต ในระหว่างนี้ ส่วนขยาย mysql_xdevapi รองรับ คำเตือน ระวัง: ตาราง MySQL บางประเภท (เครื่องมือจัดเก็บข้อมูล) ไม่รองรับธุรกรรม เมื่อเขียนโค้ดฐานข้อมูลธุรกรรมโดยใช้ประเภทตารางที่ไม่รองรับธุรกรรม MySQL จะแสร้งทำเป็นว่าธุรกรรมเริ่มต้นสำเร็จ นอกจากนี้ การสืบค้น DDL ใดๆ ที่เกิดขึ้นจะส่งผลต่อธุรกรรมที่รอดำเนินการโดยปริยาย ไดรเวอร์ MySQL ไม่รองรับอย่างถูกต้องผ่าน PDOStatement::bindParam ในขณะที่สามารถใช้พารามิเตอร์ดังกล่าวได้ แต่จะไม่ได้รับการอัปเดต (เช่น เอาต์พุตจริงจะถูกละเว้น) การกระจาย Unix ทั่วไปรวมถึง PHP เวอร์ชันไบนารีที่สามารถติดตั้งได้ แม้ว่าโดยทั่วไปแล้วเวอร์ชันไบนารีเหล่านี้จะสร้างขึ้นโดยรองรับส่วนขยาย MySQL แต่อาจต้องติดตั้งไลบรารีส่วนขยายด้วยตนเองโดยใช้แพ็คเกจเพิ่มเติม ตรวจสอบตัวจัดการแพ็คเกจที่มาพร้อมกับการแจกจ่ายที่คุณเลือกสำหรับความพร้อมใช้งาน ตัวอย่างเช่น บน Ubuntu แพ็คเกจจะติดตั้งส่วนขยาย ext/mysql, ext/mysqli และ PDO_MYSQL PHP บน CentOS แพ็คเกจจะติดตั้งส่วนขยาย PHP ทั้งสามนี้ด้วย หรือคุณสามารถรวบรวมส่วนขยายนี้ด้วยตัวคุณเอง การสร้าง PHP จากซอร์สทำให้คุณสามารถระบุส่วนขยาย MySQL ที่คุณต้องการใช้ รวมถึงไลบรารีไคลเอนต์ที่คุณเลือกสำหรับแต่ละส่วนขยาย เมื่อคอมไพล์ ให้ใช้ --with-pdo-mysql[=DIR] เพื่อติดตั้งส่วนขยาย PDO MySQL โดยที่ทางเลือกคือไลบรารีฐาน MySQL Mysqlnd เป็นไลบรารีเริ่มต้น สำหรับรายละเอียดเกี่ยวกับการเลือกไลบรารี โปรดดูที่ การเลือกไลบรารี MySQL ตัวเลือก --with-mysql-sock[=DIR] ตั้งค่าเป็นตำแหน่งไปยังตัวชี้ซ็อกเก็ตยูนิกซ์ MySQL สำหรับส่วนขยาย MySQL ทั้งหมด รวมถึง PDO_MYSQL หากไม่ได้ระบุ ตำแหน่งเริ่มต้นจะถูกค้นหา หรือจะใช้ --with-zlib-dir[=DIR] เพื่อกำหนดพาธไปยังคำนำหน้าการติดตั้ง libz การสนับสนุน SSL เปิดใช้งานโดยใช้ค่าคงที่ PDO_MySQL ที่เหมาะสม ซึ่งเทียบเท่ากับการเรียกฟังก์ชัน ÃÂû MySQL C API mysql_ssl_set นอกจากนี้ ยังไม่สามารถเปิดใช้งาน SSL กับ PDO::setAttribute เนื่องจากมีการเชื่อมต่ออยู่แล้ว ดูเพิ่มเติมที่เอกสาร MySQL เกี่ยวกับ ÃÂû การเชื่อมต่อกับ MySQL ด้วย SSL ค่าคงที่ด้านล่างถูกกำหนดโดยไดรเวอร์นี้ และจะใช้ได้เฉพาะเมื่อส่วนขยายได้รับการคอมไพล์เป็น PHP หรือโหลดแบบไดนามิกที่รันไทม์ นอกจากนี้ ควรใช้ค่าคงที่เฉพาะไดรเวอร์เหล่านี้หากคุณใช้ไดรเวอร์นี้เท่านั้น การใช้คุณสมบัติเฉพาะของไดรเวอร์กับไดรเวอร์อื่นอาจส่งผลให้เกิดพฤติกรรมที่ไม่คาดคิด PDO::getAttribute() อาจใช้เพื่อรับแอตทริบิวต์เพื่อตรวจสอบไดรเวอร์ หากรหัสของคุณสามารถทำงานกับไดรเวอร์หลายตัวได้ บน a ไดรเวอร์ MySQL จะใช้ MySQL API เวอร์ชันบัฟเฟอร์ หากคุณกำลังเขียนรหัสพกพา คุณควรใช้แทน หากแอตทริบิวต์นี้ถูกตั้งค่าเป็น a ไดรเวอร์ MySQL จะใช้ MySQL API เวอร์ชันบัฟเฟอร์ หากคุณกำลังเขียนรหัสแบบพกพา คุณควรใช้แทน ตัวอย่าง #1 บังคับให้เคียวรีบัฟเฟอร์ใน mysql "แอปพลิเคชันของฉันใช้ได้กับ mysql เท่านั้น ฉันควรใช้ \$stmt->fetchAll() แทน"หมายเหตุ ค่าคงที่นี้สามารถใช้ได้เฉพาะในอาร์เรย์เมื่อสร้างหมายเลขอ้างอิงฐานข้อมูลใหม่ อนุญาตให้จำกัดการโหลดข้อมูลในเครื่องไปยังไฟล์ที่อยู่ในไดเร็กทอรีที่กำหนดนี้ ใช้ได้ตั้งแต่ PHP 8.1.0 หมายเหตุ ค่าคงที่นี้สามารถใช้ในอาร์เรย์เมื่อสร้างตัวจัดการฐานข้อมูลใหม่เท่านั้น คำสั่งที่จะดำเนินการเมื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL จะดำเนินการใหม่โดยอัตโนมัติเมื่อเชื่อมต่อใหม่ หมายเหตุ ค่าคงที่นี้สามารถใช้ในอาร์เรย์เมื่อสร้างตัวจัดการฐานข้อมูลใหม่เท่านั้น อ่านตัวเลือกจากไฟล์ตัวเลือกที่มีชื่อแทนจาก . ตัวเลือกนี้ไม่สามารถใช้งานได้หากใช้ mysqlnd เนื่องจาก mysqlnd ไม่อ่านไฟล์การกำหนดค่า mysql อ่านตัวเลือกจากกลุ่มที่มีชื่อจาก หรือไฟล์ที่ระบุด้วย ตัวเลือกนี้ไม่สามารถใช้งานได้หากใช้ mysqlnd เนื่องจาก mysqlnd ไม่อ่านไฟล์การกำหนดค่า mysql ขนาดบัฟเฟอร์สูงสุด ค่าเริ่มต้นคือ 1 MiB ไม่รองรับค่าคงที่นี้เมื่อคอมไพล์กับ mysqlnd ส่งกลับจำนวนแถวที่พบ (ตรงกัน) ไม่ใช่จำนวนแถวที่เปลี่ยนแปลง เส้นทางไฟล์ไปยังผู้ออกใบรับรอง SSL เส้นทางไฟล์ไปยังไดเร็กทอรีที่มีใบรับรอง SSL CA ที่เชื่อถือได้ ซึ่งจัดเก็บในรูปแบบ PEM เส้นทางไฟล์ไปยังใบรับรอง SSL รายการรหัสลับที่อนุญาตให้ใช้สำหรับการเข้ารหัส SSL ในรูปแบบที่ OpenSSL เข้าใจ ตัวอย่างเช่น เส้นทางไฟล์ไปยังคีย์ SSL ให้วิธีการปิดใช้งานการตรวจสอบใบรับรอง SSL ของเซิร์ฟเวอร์ สิ่งนี้มีอยู่ตั้งแต่ PHP 7.0.18 และ PHP 7.1.4 ปิดใช้งานการดำเนินการค้นหาหลายรายการในทั้ง PDO::prepare() และ PDO::query() เมื่อตั้งค่าเป็น หมายเหตุ ค่าคงที่นี้สามารถใช้ในอาร์เรย์เมื่อสร้างตัวจัดการฐานข้อมูลใหม่เท่านั้น ลักษณะการทำงานของฟังก์ชันเหล่านี้ได้รับผลกระทบจากการตั้งค่าใน สำหรับรายละเอียดเพิ่มเติมและคำจำกัดความของโหมด PHP_INI_* โปรดดูที่สำหรับรายละเอียดเพิ่มเติมและคำจำกัดความของโหมด PHP_INI_* โปรดดูที่การตั้งค่าการตั้งค่าที่สามารถตั้งค่าได้ ตั้งค่าซ็อกเก็ตโดเมน Unix ค่านี้สามารถตั้งค่าได้ในเวลาคอมไพล์ ถ้าพบซ็อกเก็ตโดเมนที่คอนฟิกูเรชัน การตั้งค่า ini นี้เป็น Unix เท่านั้น เปิดใช้งานการดีบักสำหรับ PDO_MYSQL การตั้งค่านี้ใช้ได้เฉพาะเมื่อคอมไพล์ PDO_MYSQL กับ mysqlnd และในโหมดดีบัก PDO