การเชื่อมต่อกับ mysql ผ่าน php.ini จะสร้างการเชื่อมต่อฐานข้อมูลใน PHP ได้อย่างไร? วิธีสร้างการเชื่อมต่อกับฐานข้อมูล phpmyadmin

คำถามนี้ค่อนข้างได้รับความนิยมในหมู่ผู้เริ่มต้นและเป็นการผิดที่จะไม่อุทิศบทความแยกต่างหากในเรื่องนี้ ชอบด้วย โดยใช้ PHPสร้างการเชื่อมต่อกับฐานข้อมูล? ฉันจะบอกทันทีว่าเครื่องมือ PHP นั้นเพียงพอสำหรับงานเต็มเปี่ยมกับฐานข้อมูลและการโต้ตอบกับ MySQL ตอนนี้เรามาลองเชื่อมต่อกัน!

คุณต้องมีอะไรบ้างในการเชื่อมต่อ PHP กับ MySQL?

1. ติดตั้ง DBMS และสร้างฐานข้อมูลการทำงาน ตัวอย่างเช่นใน MySQL (DBMS และ MySQL คืออะไร)
2. บัญชีผู้ใช้สำหรับ MySQL ที่มีสิทธิ์ที่เหมาะสม (สิทธิ์และสิทธิพิเศษใน MySQL คืออะไร)
3. ดังนั้นจึงมีการติดตั้งเซิร์ฟเวอร์ที่ติดตั้ง PHP

หากคุณไม่ทำตามขั้นตอนใดขั้นตอนหนึ่งเหล่านี้ คุณจะไม่สามารถเชื่อมต่อได้

อัลกอริทึมสำหรับการโต้ตอบระหว่าง PHP และ MySQL

1. การเชื่อมต่อกับฐานข้อมูล
2. การส่งคำขอและรับผล
3. (ที่ต้องการ) การปิดการเชื่อมต่อ

ตอนนี้เราเชื่อมต่อกับฐานข้อมูลโดยใช้ PHP:

รหัสพีเอชพี

$db = mysql_connect("localhost", "Admin", "pass"); // ข้อมูลผู้ใช้
mysql_select_db("baseName",$db); // เลือกฐานข้อมูลที่จะเชื่อมต่อ
?>
อย่างที่คุณเห็นมีการระบุพารามิเตอร์สี่ตัวสำหรับการเชื่อมต่อ:

1. ชื่อโฮสต์ ในหลายกรณี การระบุ localhost (บนโฮสติ้งเดียวกัน) ก็เพียงพอแล้ว
2. ชื่อของผู้ใช้ที่คุณลงทะเบียนเพื่อใช้ MySQL
3. รหัสผ่านของผู้ใช้ที่คุณลงทะเบียนเพื่อใช้ MySQL
4. ชื่อฐานข้อมูลที่เราต้องการเชื่อมต่อ ดังนั้นผู้ใช้ที่เราระบุจะต้องมีสิทธิ์ทำงานในฐานข้อมูลนี้

เป็นผลให้หากมีการระบุบางสิ่งไม่ถูกต้องก็จะไม่มีความผิดทางอาญาเกิดขึ้น แต่ส่วนใหญ่คุณจะเห็นข้อผิดพลาด แต่ลองมองในแง่ดี สมมติว่าคุณป้อนทุกอย่างถูกต้อง

การเชื่อมต่อประเภทอื่น:

รหัสพีเอชพี

$host="localhost"; /*เจ้าภาพ*/
$user="ผู้ดูแลระบบ"; /*ชื่อผู้ใช้*/
$รหัสผ่าน="12345"; /*รหัสผ่านผู้ใช้*/
$db="ชื่อฐาน"; /*ชื่อฐานข้อมูล*/

Mysql_connect($host, $user, $password); /*เชื่อมต่อกับเซิร์ฟเวอร์*/
mysql_select_db($db); /*เชื่อมต่อกับฐานข้อมูลบนเซิร์ฟเวอร์*/
?>
ที่นี่ ฉันสร้างตัวแปรด้วยภาพพร้อมข้อมูลตัวอย่างสำหรับผู้ใช้และโฮสต์ จากนั้นจึงสร้างการเชื่อมต่อ

จะขัดจังหวะ (ปิด) การเชื่อมต่อกับฐานข้อมูลใน PHP ได้อย่างไร?

มีหลายกรณีที่ระบุข้อมูลการเชื่อมต่อไม่ถูกต้อง ในกรณีนี้ สคริปต์ยังคงประมวลผลไฟล์ PHP ต่อไป และก่อให้เกิดข้อผิดพลาดและคำเตือนจำนวนหนึ่งบนหน้าเว็บ ในกรณีเหล่านี้ ฉันขอแนะนำให้ใช้ตัวจัดการข้อผิดพลาดเมื่อเชื่อมต่อกับฐานข้อมูล หากการเชื่อมต่อไม่สำเร็จ คุณจะได้รับคำเตือนที่จะแจ้งให้คุณทราบว่าปัญหาอยู่ในขั้นตอนใด:

รหัสพีเอชพี

$user="ผู้ดูแลระบบ";
$รหัสผ่าน="12345";
$db="ชื่อฐาน";

// หากมีข้อผิดพลาดเกิดขึ้น
mysql_connect($host, $user, $password) or die("เซิร์ฟเวอร์ MySQL ไม่พร้อมใช้งาน!".mysql_error());
mysql_select_db($db) or die("ไม่มีการเชื่อมต่อกับฐานข้อมูล"mysql_error());
?>
สิ่งสำคัญมากคือต้องหยุดการพัฒนาสถานการณ์ซึ่งจะช่วยคุณประหยัดจากข้อมูลที่ไม่ถูกต้องจำนวนมาก

ยินดีด้วย! ตอนนี้คุณรู้วิธีเชื่อมต่อกับฐานข้อมูลใน PHP และปิดการเชื่อมต่อแล้ว!

ขอบคุณสำหรับความสนใจของคุณ!

หลังจากที่คุณติดตั้งเซิร์ฟเวอร์ MySQL แล้ว คุณสามารถเชื่อมต่อได้จากเครื่องเดียวกันเท่านั้น สิ่งนี้ทำเพื่อวัตถุประสงค์ด้านความปลอดภัยของระบบ เนื่องจากในกรณีส่วนใหญ่ MySQL จะถูกใช้บนเว็บ และในบางกรณีที่เกิดขึ้นไม่บ่อยนัก เว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ฐานข้อมูลจะถูกแยกออกจากกัน

ในส่วนขององค์กร การใช้เซิร์ฟเวอร์ 1 เครื่องสำหรับงานที่คล้ายกันทั้งหมดนั้นถูกต้องมากกว่า การเก็บ MySQL ไว้กับฐานข้อมูลเดียวบนเซิร์ฟเวอร์ทุกเครื่องที่อาจจำเป็นต้องใช้นั้นเป็นเรื่องโง่ ดังนั้นจึงต้องมีเซิร์ฟเวอร์ฐานข้อมูลหนึ่งเซิร์ฟเวอร์ที่ติดตั้งฐานข้อมูลตามจำนวนที่ต้องการสำหรับงานที่แตกต่างกัน

อย่างไรก็ตาม บนเว็บ เซิร์ฟเวอร์ฐานข้อมูลและเว็บเซิร์ฟเวอร์จะถูกแยกออกจากกันเฉพาะในกรณีที่พลังของเซิร์ฟเวอร์เดียวไม่เพียงพอ คุณเช่าเซิร์ฟเวอร์เฉพาะและโฮสต์ฐานข้อมูลบนนั้น ฉันต้องการชี้แจงว่ามันสมเหตุสมผลที่จะทำเช่นนี้ภายใน DC เดียวเท่านั้น

อนุญาตให้เชื่อมต่อกับ MySQL จากระยะไกล

ในไฟล์กำหนดค่าของ MySQL นั้นจะมีพารามิเตอร์อยู่ ผูกที่อยู่ซึ่งรับผิดชอบเรื่องนี้ ดังนั้น:

  1. เปิด ไฟล์การกำหนดค่าสำหรับการแก้ไข:
    sudo นาโน /etc/mysql/my.cnf
  2. แสดงความคิดเห็นในบรรทัด:
    # ที่อยู่ผูก = 127.0.0.1
  3. รีสตาร์ท MySQL:
    บริการ sudo mysql รีสตาร์ท

การแสดงความคิดเห็นในบรรทัดนี้เทียบเท่ากับการกำหนดที่อยู่ IP 0.0.0.0 นั่นคืออนุญาตให้ทุกคนเชื่อมต่อได้ คุณไม่สามารถระบุที่อยู่ IP 2 รายการในบรรทัดนี้ได้ หากคุณต้องการจำกัดการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL คุณต้องใช้ความสามารถของ iptables

ตอนนี้คุณสามารถเชื่อมต่อกับเซิร์ฟเวอร์ฐานข้อมูลผ่านไคลเอนต์ telnet ได้ แต่คุณต้องเข้าไปข้างใน บัญชีซึ่งได้รับอนุญาตให้เชื่อมต่อไม่เพียงแต่จาก localhost เท่านั้น ในการดำเนินการนี้ คุณจะต้องเชื่อมต่อกับ MySQL จากเซิร์ฟเวอร์และสร้างผู้ใช้ต่อไปนี้:

Mysql -u รูท -p

และสร้างผู้ใช้ด้วยคำสั่ง:

ให้สิทธิ์ทั้งหมดบน *.* ให้กับ "new_user"@"remote_address" ที่ระบุโดย "รหัสผ่าน" พร้อมตัวเลือกการให้สิทธิ์

บรรทัดนี้สร้างผู้ใช้ที่มีสิทธิ์ไม่จำกัดซึ่งไม่ถูกต้องทั้งหมด เป็นการถูกต้องมากกว่าที่จะจำกัดการเข้าถึงของผู้ใช้ที่เชื่อมต่อจากระยะไกลให้มากที่สุด ดังนั้นคำสั่งอาจมีลักษณะดังนี้:

ให้สิทธิ์เลือก แทรก ลบ อัปเดต สร้าง แก้ไขบน "database_name".* เป็น "new_user"@"remote_address" ระบุโดย "รหัสผ่าน" พร้อมตัวเลือกการให้สิทธิ์

ด้วยคำสั่งนี้ เราจำกัดสิทธิ์ของผู้ใช้ให้เหลือเพียงฐานข้อมูลเดียวและดำเนินการกับฐานข้อมูลนั้น

รายการสิทธิ์ทั้งหมดที่สามารถระบุได้สำหรับผู้ใช้:

  • สิทธิพิเศษทั้งหมด– สิทธิ์ทั้งหมดในวัตถุที่ระบุ ยกเว้นการกำหนดสิทธิ์ให้กับวัตถุนี้
  • สร้าง– สิทธิในการสร้างตาราง
  • เปลี่ยนแปลง– สิทธิในการเปลี่ยนแปลงโต๊ะ
  • หยด– สิทธิในการทำลายโต๊ะ
  • ล็อคตาราง– สิทธิในการล็อคโต๊ะ
  • สร้างตารางชั่วคราว– สิทธิ์ในการสร้างตารางชั่วคราว
  • สร้างกิจวัตร– สิทธิ์ในการสร้างขั้นตอนและฟังก์ชันที่จัดเก็บ
  • เปลี่ยนกิจวัตร– สิทธิ์ในการเปลี่ยนแปลงหรือทำลายขั้นตอนและฟังก์ชันที่จัดเก็บไว้
  • สร้างมุมมอง– สิทธิในการสร้างตัวแทน
  • สิ่งกระตุ้น– สิทธิ์ในการสร้างและทำลายทริกเกอร์
  • ดัชนี– สิทธิ์ในการสร้างและทำลายดัชนี
  • ดำเนินการ– สิทธิ์ในการดำเนินการตามขั้นตอนและฟังก์ชันที่เก็บไว้
  • เหตุการณ์– สิทธิ์ในการสร้างกิจกรรม
  • สร้างผู้ใช้– สิทธิ์ในการสร้าง ทำลาย เปลี่ยนชื่อผู้ใช้ และลบสิทธิ์ทั้งหมด ได้รับการแต่งตั้งในระดับโลกเท่านั้น
  • เลือก– สิทธิในการสุ่มตัวอย่าง
  • ลบ– สิทธิ์ในการลบ;
  • แทรก– สิทธิ์ในการแทรก;
  • อัปเดต– สิทธิ์ในการอัปเดต;
  • ไฟล์– สิทธิ์ในการใช้คำสั่ง SELECT ... INTO OUTFILE และ LOAD DATA INFILE
  • กระบวนการ– สิทธิ์ในการดูกระบวนการทั้งหมดโดยใช้คำสั่ง SHOW PROCESSLIST
  • แสดงฐานข้อมูล– สิทธิ์ในการดูรายการโครงร่าง
  • แสดงมุมมอง– สิทธิ์ในการดูรายการมุมมอง
  • ปิดเครื่อง– สิทธิในการปิด

ในบทความนี้วันนี้เราจะพูดถึงการสร้างการเชื่อมต่อกับฐานข้อมูลและอภิปรายว่าตัวเลือกใดดีกว่าในการใช้ขั้นตอนหรือเชิงวัตถุ ขั้นแรกเรามาดูว่าเราอยู่ในระดับใดหากนี่คือระดับของผู้เริ่มต้นที่สมบูรณ์คำแนะนำของฉันโดยไม่มีข้อยกเว้นคือการเริ่มใช้รูปแบบขั้นตอนการเชื่อมต่อกับฐานข้อมูล ก่อนหน้านี้ ฉันเขียนบทความเกี่ยวกับหัวข้อนี้ในบล็อกของฉัน หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบขั้นตอนของการเชื่อมต่อกับฐานข้อมูล โปรดอ่านบทความ: “วิธีเชื่อมต่อกับ MySQL โดยใช้ PHP” หากคุณมีประสบการณ์ในการทำงานกับรูปแบบขั้นตอนในการเชื่อมต่อกับฐานข้อมูลอยู่แล้ว คุณก็คงเหมือนกับฉันที่เอาโปรเจ็กต์ของฉันไปบังคับให้พวกเขาใช้วิธีการเชิงวัตถุ

ไม่ทางใดก็ทางหนึ่ง ตอนนี้เราจะวิเคราะห์ขั้นตอนของการสร้างคลาสเพื่อสร้างการเชื่อมต่อกับฐานข้อมูล ข้อมูลมายเอสคิวแอลบน ภาษาพีพีพี- เราจะต้องมีไฟล์ PHP สองไฟล์ โดยในไฟล์เดียวเราจะ "ใส่" คลาสสำหรับสร้างการเชื่อมต่อกับฐานข้อมูล และไฟล์ที่สองเราจะทำงานกับคลาสนี้

มาสร้างสองไฟล์กัน:

  • ดัชนี.php;
  • ฐานข้อมูล.class.php;

ฉันคิดว่าเราไม่ใช่เด็กเล็กๆ อีกต่อไปแล้ว และเรารู้ว่าเราต้องทำอะไรเพื่อทำงานกับไฟล์ PHP ติดตั้งเว็บแล้ว- เซิร์ฟเวอร์ Apache, PHP, MySQL DBMS และรู้ว่าจะวางไฟล์เหล่านี้ไว้ที่ไหน - (สำหรับผู้ที่ไม่รู้หรือลืมไปแล้ว)

ฉันใส่ไฟล์ที่เก็บคลาสไว้ แยกไฟล์และฉันตั้งชื่อมันในรูปแบบ: class name.class.php และฉันรู้ว่ามีอะไรเก็บไว้ในไฟล์นี้ เมื่อมีหลายคลาสในโปรเจ็กต์ คุณอาจหลงทางได้ ดังนั้นฉันขอแนะนำให้ตั้งชื่อไฟล์ด้วยคลาสในรูปแบบที่อธิบายไว้ข้างต้น

ไฟล์ Database.class.php:

ตอนนี้เรามาดูสิ่งที่ถูกสร้างขึ้นบน ขั้นตอนนี้- การใช้คีย์เวิร์ด "คลาส" ชื่อคลาส - DataBase และเครื่องหมายปีกกา เราสร้างเนื้อหาของคลาส ในคลาสที่สร้างขึ้น เราได้สร้างคุณสมบัติสองประการใน $mConnect - โดยที่ผลลัพธ์ของการเชื่อมต่อกับฐานข้อมูลจะถูกจัดเก็บ และ $mSelectDB - ซึ่งผลลัพธ์ของการเลือกฐานข้อมูลจะถูกจัดเก็บ คุณอาจสังเกตเห็นคำหลักในแต่ละพร็อพเพอร์ตี้ ทั้งแบบสาธารณะและแบบคงที่ พวกเขากำลังพูดถึงเรื่องอะไร? สาธารณะหมายความว่าทรัพย์สินสามารถเข้าถึงได้จากภายนอกคลาส และแบบคงที่ทำให้สามารถเข้าถึงหรือเรียกคุณสมบัติได้โดยไม่ต้องสร้างอินสแตนซ์ของคลาส ซึ่งมักจะสะดวกในการทำงาน

มาเพิ่มวิธี Connect() เพื่อสร้างการเชื่อมต่อกับฐานข้อมูล:

".mysql_error()"

"; exit(); return false; ) // คืนผลลัพธ์ return self::$mConnect; ) ) ?>

  • $host - ที่อยู่ IP ของเซิร์ฟเวอร์บนพีซีในเครื่องคือ localhost
  • ผู้ใช้ - ชื่อผู้ใช้ฐานข้อมูล
  • $pass - รหัสผ่านผู้ใช้ฐานข้อมูล;
  • $name - ชื่อของฐานข้อมูลที่เราเชื่อมต่อ

ฟังก์ชัน mysql_connect() สร้างการเชื่อมต่อกับฐานข้อมูลและจัดเก็บผลการดำเนินการไว้ใน $mConnect ถัดมาเป็นการตรวจสอบด้วยโครงสร้าง IF: หากการเชื่อมต่อไม่สำเร็จ ให้แสดงข้อความแสดงข้อผิดพลาด... มิฉะนั้น PHP จะเพิกเฉยต่อบล็อก IF และดำเนินการเลือกฐานข้อมูลต่อไป ฟังก์ชัน mysql_select_db() จะเลือกชื่อฐานข้อมูล หากไม่มีฐานข้อมูลที่ร้องขอในฐานข้อมูล ในกรณีนี้ โปรแกรมจะแจ้งให้ผู้ใช้ทราบถึงข้อผิดพลาด หากทุกอย่างสำเร็จการเชื่อมต่อฐานข้อมูลจะกลับมา

เพิ่มเมธอด Close():

ขออภัย เราไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ได้

"; exit(); return false; ) // ลองเลือกฐานข้อมูล self::$mSelectDB = mysql_select_db($name, self::$mConnect); // หากไม่ได้เลือกฐานข้อมูล จะแสดงข้อความแสดงข้อผิดพลาด.. ถ้า( !self::$mSelectDB) ( เสียงก้อง "

".mysql_error()"

"; exit(); return false; ) // ส่งคืนผลลัพธ์ return self::$mConnect; ) // วิธีการปิดการเชื่อมต่อกับฐานข้อมูล public static function Close() ( // ส่งคืนผลลัพธ์ return mysql_close(self: :$mConnect) ; ) ) ?>

เมธอดถัดไปและสุดท้ายในคลาสนี้คือ Close() จะปิดการเชื่อมต่อกับฐานข้อมูล ฟังก์ชัน mysql_close() จะปิดการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL และส่งกลับผลลัพธ์

ไฟล์ Index.php:

การใช้ฟังก์ชัน Defin() เราสร้างค่าคงที่เพื่อจัดเก็บพารามิเตอร์การเชื่อมต่อฐานข้อมูล Require_once รวมคลาส DataBase ของเราไว้ในไฟล์ index.php

มาจำกัน คำหลัก static ซึ่งใช้ในคลาส DataBase ในคุณสมบัติและวิธีการของคลาสนี้ สิ่งนี้ทำให้เราสามารถเข้าถึงคุณสมบัติคลาสและวิธีการโดยใช้ `::' (เครื่องหมายทวิภาคสองตัว) เมธอด DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE) รับพารามิเตอร์ 4 ตัว - ค่าคงที่ที่สร้างโดยฟังก์ชัน Define() ซึ่งจัดเก็บข้อมูลเกี่ยวกับการเชื่อมต่อกับฐานข้อมูล หากการเชื่อมต่อสำเร็จ เมธอด Connect() จะส่งคืนการเชื่อมต่อฐานข้อมูลให้เรา ต่อไปเราจะสามารถทำงานและดำเนินการสืบค้นไปยังฐานข้อมูลได้ ฟังก์ชัน mysql_query() - ดำเนินการค้นหาไปยังฐานข้อมูล ฟังก์ชัน mysql_fetch_assoc() ประมวลผลชุดผลลัพธ์การสืบค้นและส่งกลับอาร์เรย์ที่เชื่อมโยง โครงสร้าง echo จะแสดงเวอร์ชันเซิร์ฟเวอร์ MySQL และสุดท้าย DataBase::Close() วิธีการจะปิดการเชื่อมต่อกับฐานข้อมูล

การใช้งาน php...

การสร้างการเชื่อมต่อฐานข้อมูลใน PHP ในรูปแบบต่างๆ:

1) วิธีที่ล้าสมัยในการเชื่อมต่อกับ MySQL:

$conn=mysql_connect($db_hostname, $db_username, $db_password) or die ("ไม่มีการเชื่อมต่อกับเซิร์ฟเวอร์");
mysql_select_db($db_database,$conn) or die ("ไม่ ไม่สามารถเชื่อมต่อกับฐานข้อมูลได้");

คำอธิบายตัวแปรด้านล่าง

มีการใช้ฟังก์ชันต่อไปนี้:

  • mysql_connect()- เพื่อเชื่อมต่อกับเซิร์ฟเวอร์
  • mysql_select_db()- เพื่อเชื่อมต่อกับฐานข้อมูล

ในเวลาเดียวกัน เราตรวจสอบข้อผิดพลาดอย่างต่อเนื่องในลักษณะนี้: หรือตาย (“ข้อผิดพลาดเป็นเช่นนั้น”); - แปลเป็นหรือตายด้วยข้อผิดพลาดดังกล่าว - เพื่อค้นหาทันทีว่าข้อผิดพลาดอยู่ที่ไหน

config.php

// ตัวแปรสำหรับเชื่อมต่อกับฐานข้อมูล
$host = "localhost"; /เจ้าภาพ
$ชื่อผู้ใช้ = "รูท"; // รหัสผ่านสำหรับเชื่อมต่อกับฐานข้อมูล
$รหัสผ่าน = ""; // รหัสผ่านสำหรับเชื่อมต่อกับฐานข้อมูล - เปิด คอมพิวเตอร์ท้องถิ่นมันอาจมีค่าว่าง
$database_name = "my-dolgi"; //ชื่อฐานข้อมูล

// วิธีเก่าในการเชื่อมต่อกับฐานข้อมูล
mysql_connect($host, $username, $password) or die("ไม่สามารถเชื่อมต่อสร้างการเชื่อมต่อได้");

// เลือกฐานข้อมูล หากมีข้อผิดพลาดให้ส่งออก
mysql_select_db($database_name) หรือ die(mysql_error());

ดัชนี.php

need_once "config.php";


$result = mysql_query("เลือกชื่อ, เงินจาก Dolg เรียงตาม Money DESC จำกัด 5") หรือ die(mysql_error());



";


ในขณะที่ ($row = mysql_fetch_assoc($result)) (
";
}


mysql_free_result($ผล);

// ปิดการเชื่อมต่อ
mysql_close();

2) รูปแบบขั้นตอนที่ก้าวหน้ายิ่งขึ้น - การเชื่อมต่อกับฐานข้อมูลโดยใช้ mysqli:

วิธีการนี้:

  1. สะดวกยิ่งขึ้น
  2. เร็วขึ้นถึง 40 เท่า;
  3. ความปลอดภัยที่เพิ่มขึ้น
  4. มีคุณสมบัติและฟังก์ชั่นใหม่

ตัวอย่างการเชื่อมต่อกับฐานข้อมูลใน PHP ด้วยการเลือกจากตาราง

config.php

// การเชื่อมต่อกับฐานข้อมูล
$link = mysqli_connect("localhost", "ชื่อผู้ใช้", "รหัสผ่าน", "ชื่อฐานข้อมูล"); // ที่นี่เราป้อนข้อมูลของคุณโดยตรง: ชื่อผู้ใช้ รหัสผ่าน และชื่อฐานข้อมูล ฟิลด์แรกมักจะเป็น localhost

// เกิดข้อผิดพลาดในการเชื่อมต่อเอาต์พุต
ถ้า (!$ลิงก์) (
echo "เกิดข้อผิดพลาดในการเชื่อมต่อกับฐานข้อมูล รหัสข้อผิดพลาด:" . mysqli_connect_error();
ออก;
}

โปรดทราบ - mysqli ถูกใช้ทุกที่ ไม่ใช่ mysql!!!

ดัชนี.php

need_once "config.php";

// ดำเนินการตามคำขอ หากมีข้อผิดพลาดเราจะแสดงมัน
ถ้า ($ผลลัพธ์ = mysqli_query($ลิงค์,"เลือกชื่อ เงินจากหนี้ เรียงลำดับตามเงิน DESC จำกัด 5")) (

ก้อง "ฉันเป็นหนี้ใครตามลำดับจากมากไปน้อย:

";

// กำลังดึงผลลัพธ์แบบสอบถาม
ในขณะที่ ($แถว = mysqli_fetch_assoc($ผลลัพธ์)) (
เสียงสะท้อน $row["Name"] "มีหนี้". $แถว["เงิน"] . " รูเบิล
";
}

// เพิ่มหน่วยความจำที่ใช้แล้ว
mysqli_free_result($ผลลัพธ์);

// ปิดการเชื่อมต่อ
mysqli_close($ลิงค์);
}

อย่างที่คุณเห็นมีบางจุดเปลี่ยนไป (เป็นตัวเอียง)

3) วิธีการเชิงวัตถุในการเชื่อมต่อกับฐานข้อมูล MySQL โดยใช้วิธีการและคลาส:

จุดด้อย: ซับซ้อนกว่าและไวต่อข้อผิดพลาดน้อยกว่า

ข้อดี: ความกะทัดรัดและความสะดวกสบายสำหรับโปรแกรมเมอร์ที่มีประสบการณ์

$conn = mysqli ใหม่($db_hostname, $db_username, $db_password, $db_database);
ถ้า($conn->connect_errno)(
ตาย($conn->connect_error);
) else (echo "สร้างการเชื่อมต่อกับฐานข้อมูลสำเร็จแล้ว";)

โดยหลักการแล้ว ทุกอย่างเป็นไปตามสัญชาตญาณ:

  • $db_hostname คือ เจ้าภาพ(ส่วนใหญ่เป็นโลคัลโฮสต์)
  • $db_ฐานข้อมูล - ชื่อฐานข้อมูล;
  • $db_username และ $db_password - ชื่อผู้ใช้และรหัสผ่านตามลำดับ!

ตัวอย่างการเชื่อมต่อกับฐานข้อมูลในรูปแบบ php OOP พร้อมการสุ่มตัวอย่างจากตาราง

config.php

// การเชื่อมต่อกับฐานข้อมูล
$mysqli = new mysqli("localhost", "ชื่อผู้ใช้", "รหัสผ่าน", "ชื่อ-ฐานข้อมูล"); // ที่นี่เราป้อนข้อมูลของคุณโดยตรง: ชื่อผู้ใช้ รหัสผ่าน และชื่อฐานข้อมูล ฟิลด์แรกมักจะเป็น localhost

// เกิดข้อผิดพลาดในการเชื่อมต่อเอาต์พุต
ถ้า ($mysqli->connect_error) (
die ("ข้อผิดพลาดในการเชื่อมต่อฐานข้อมูล: (" . $mysqli->connect_errno . ") " . mysqli_connect_error);
}

โปรดทราบ - mysqli ถูกใช้ทุกที่ ไม่ใช่ mysql!!! และไม่เหมือนกับวิธีก่อนหน้า ลูกศร “->” จะปรากฏขึ้น ซึ่งระบุว่านี่คือสไตล์ OOP

ดัชนี.php

need_once "config.php";

// ดำเนินการตามคำขอ หากมีข้อผิดพลาดเราจะแสดงมัน
ถ้า ($ผลลัพธ์ = $ mysqli -> แบบสอบถาม("เลือกชื่อ เงินจากหนี้ เรียงลำดับตามเงิน DESC จำกัด 5")) (

ก้อง "ฉันเป็นหนี้ใครตามลำดับจากมากไปน้อย:

";

// กำลังดึงผลลัพธ์แบบสอบถาม
ในขณะที่ ($row = $result-> fetch_assoc()) {
เสียงสะท้อน $row["Name"] "มีหนี้". $แถว["เงิน"] . " รูเบิล
";
}

// เพิ่มหน่วยความจำที่ใช้แล้ว
$ผลลัพธ์ -> ปิด ();

// ปิดการเชื่อมต่อ
$mysqli -> ปิด();
}

งานของคุณคือการค้นหาความแตกต่าง

4) การสื่อสารกับฐานข้อมูลโดยใช้ PDO:

เมื่อเชื่อมต่อกับฐานข้อมูล MySQL จะใช้นิพจน์ที่เตรียมไว้ (โดยใช้วิธีการจัดเตรียม) และส่งผลให้มีความปลอดภัยมากขึ้นและเพิ่มประสิทธิภาพอย่างมาก

ไฟล์กำหนดค่าจากวิธีเดิม! - เหมือนกัน

ดัชนี.php

// รูปแบบ PDO สำหรับการสื่อสารกับ MySQL
if ($stmt = $mysqli->prepare("เลือกชื่อ Voney จาก Dolg เรียงตามเงิน)< ? LIMIT 5")) {

$stmt->bind_param("i", $summa);
$summa = 100,000;

//เริ่มดำเนินการ
$stmt->ดำเนินการ();

//การประกาศตัวแปรสำหรับค่าที่เตรียมไว้
$stmt->bind_result($col1, $col2);

ก้อง "ฉันเป็นหนี้ใครตามลำดับจากมากไปน้อย:

";

// กำลังดึงผลลัพธ์แบบสอบถาม
ในขณะที่ ($stmt->ดึงข้อมูล()) (
เสียงสะท้อน $col1 "มีหนี้". $col2 . " รูเบิล
";
}

// เพิ่มหน่วยความจำที่ใช้แล้ว
$stmt->ปิด();

// ปิดการเชื่อมต่อ
$mysqli->ปิด();

อย่างที่คุณเห็นสิ่งนี้ซับซ้อนกว่ามากและคุณต้องศึกษา PDO - นี่เป็นหัวข้อแยกต่างหาก

3 วิธีในการเชื่อมต่อกับ MySQL ด้วย PHP พร้อมตัวอย่างโค้ด


ในการเริ่มใช้ฐานข้อมูล MySQL คุณต้องเข้าใจวิธีการเชื่อมต่อจากโปรแกรม PHP (สคริปต์) ที่คุณกำหนดเองกับฐานข้อมูล MySQL นี้ก่อน

บทความนี้จะอธิบายสามวิธีต่อไปนี้ พร้อมด้วยตัวอย่างโค้ด PHP ที่เกี่ยวข้องซึ่งอธิบายวิธีเชื่อมต่อกับฐานข้อมูลของคุณจาก PHP

สำหรับตัวอย่างทั้งหมดด้านล่างนี้ เราจะเชื่อมต่อกับฐานข้อมูล MySQL ที่มีอยู่ หมายเหตุ: ทุกสิ่งที่อธิบายไว้ที่นี่จะใช้ได้กับ MariaDB เช่นเดียวกับ MySQL

1. การเชื่อมต่อกับ PHP โดยใช้ส่วนขยาย mysqli
*mysqli หมายถึง MySQL ปรับปรุงแล้ว

สร้างไฟล์ mysqli.php ต่อไปนี้

Connect_error) ( die("ข้อผิดพลาด: ไม่สามารถเชื่อมต่อ: " . $conn->connect_error); ) echo "เชื่อมต่อกับฐานข้อมูลแล้ว
"; $result = $conn->query("SELECT id FROM goroda"); echo "จำนวนแถว: $result->num_rows"; $result->close(); $conn->close(); ?> ในโค้ดข้างต้น:

  • mysqli - ฟังก์ชั่นนี้เริ่มต้นการเชื่อมต่อใหม่โดยใช้ส่วนขยาย mysqli ฟังก์ชันรับอาร์กิวเมนต์สี่ตัว:
    1. localhost คือชื่อของโฮสต์ที่ฐานข้อมูล MySQL กำลังทำงานอยู่
    2. ชื่อ - ชื่อผู้ใช้ MySQL ที่จะเชื่อมต่อ
    3. pass - รหัสผ่านสำหรับผู้ใช้ mysql
    4. db - ฐานข้อมูล MySQL ที่จะเชื่อมต่อ
  • qvery - ฟังก์ชั่น แบบสอบถาม MySQL- ในตัวอย่างนี้ เราเลือกคอลัมน์ id จากฐานข้อมูลเมือง
  • สุดท้ายนี้ เราจะแสดงจำนวนแถวที่เลือกโดยใช้ตัวแปร num_rows ในผลลัพธ์ นอกจากนี้เรายังปิดทั้งผลลัพธ์และตัวแปรการเชื่อมต่อดังที่แสดงด้านบน
เมื่อคุณเรียก mysqli.php ข้างต้นจากเบราว์เซอร์ของคุณ คุณจะเห็นผลลัพธ์ต่อไปนี้ซึ่งระบุว่า PHP สามารถเชื่อมต่อกับฐานข้อมูล MySQL และดึงข้อมูลได้

เชื่อมต่อกับฐานข้อมูลแล้ว จำนวนบรรทัด: 6 2. เชื่อมต่อจาก PHP MySQLส่วนขยาย PDO
*PDO ย่อมาจาก PHP Data Objects

ไดรเวอร์ PDO_MYSQL ใช้อินเทอร์เฟซ PDO ที่จัดทำโดย PHP เพื่อเชื่อมต่อจากสคริปต์ PHP ของคุณไปยังฐานข้อมูล MySQL

สร้างไฟล์ mysql-pdo.php ต่อไปนี้:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "เชื่อมต่อกับฐานข้อมูลแล้ว
"; $sql = "เลือกรหัสจากโกโรดา"; พิมพ์ "รายการรหัส:
"; foreach ($conn->query($sql) as $row) ( print $row["id"] . "

  • "; ) $conn = null; ) catch(PDOException $err) ( echo "ข้อผิดพลาด: ไม่สามารถเชื่อมต่อ: " . $err->getMessage(); ) ?> ในข้างต้น:
    1. new PDO - จะสร้างวัตถุ PDO ใหม่ที่จะรับข้อโต้แย้งสามข้อต่อไปนี้:
    2. สตริงการเชื่อมต่อ mysql: มันจะอยู่ในรูปแบบ “mysql:host=localhost;dbname=db” ในตัวอย่างข้างต้น db กำลังทำงานบน localhost และเรากำลังเชื่อมต่อกับฐานข้อมูล db
    3. ชื่อผู้ใช้ MySQL เพื่อเชื่อมต่อ
  • รหัสผ่านผู้ใช้ Mysql ตัวแปร $sql - สร้างแบบสอบถาม SQL
  • ที่คุณต้องการดำเนินการ ในตัวอย่างนี้ เราเลือกคอลัมน์ id จากตารางเมือง
  • แบบสอบถาม($sql) ที่นี่เรากำลังดำเนินการค้นหา sql ที่เราเพิ่งสร้างขึ้น
  • foreach. ที่นี่เราวนซ้ำผลลัพธ์จากคำสั่งแบบสอบถามด้านบนและเก็บไว้ในตัวแปร $row จากนั้นส่งออกโดยใช้ echo
ใน MySQL PDO หากต้องการปิดการเชื่อมต่อ เพียงตั้งค่าตัวแปร $conn เป็นโมฆะ

เชื่อมต่อกับฐานข้อมูลแล้ว รหัสรายการ: 1 2 3 4 5 6 3. การเชื่อมต่อจาก PHP โดยใช้ฟังก์ชัน mysql ที่ล้าสมัย

ใช้วิธีนี้เฉพาะในกรณีที่คุณใช้มากกว่านั้น รุ่นเก่า PHP และด้วยเหตุผลบางอย่างคุณไม่สามารถอัปเดตได้ เวอร์ชันใหม่- ขอแนะนำให้ใช้วิธีที่ #2 และวิธีที่ #3 ที่แสดงด้านบนแทนวิธีนี้ ฉันได้รวมวิธีการนี้ไว้เพื่อใช้อ้างอิงเท่านั้นและไม่ใช่คำแนะนำในการใช้งาน

ส่วนขยายเฉพาะนี้เลิกใช้แล้วโดย เวอร์ชัน PHP 5.5. แต่สำหรับ PHP 7.0 สิ่งนี้จะไม่ทำงานด้วยซ้ำเนื่องจากถูกลบออกไป ตั้งแต่ PHP 5.5 เมื่อคุณใช้ฟังก์ชันเหล่านี้ มันจะสร้างข้อผิดพลาด E_DEPRECATED

สร้างไฟล์ mysql.php:

"; $result = mysql_query("SELECT id FROM goroda"); $row = mysql_fetch_row($result); echo "id 1: ", $row, "
\n"; mysql_close($conn); ?> ดังตัวอย่างข้างต้น:

  • ฟังก์ชัน mysql_connect รับสามอาร์กิวเมนต์:
    1. ชื่อของโฮสต์ที่ฐานข้อมูล MySQL กำลังทำงานอยู่
    2. ชื่อผู้ใช้ MySQL เพื่อเชื่อมต่อ
    3. รหัสผ่านสำหรับผู้ใช้ mysql ที่นี่เชื่อมต่อกับฐานข้อมูล MySQL ที่ทำงานบนเซิร์ฟเวอร์ภายในเครื่องโดยใช้ชื่อผู้ใช้และรหัสผ่าน
  • ฟังก์ชัน mysql_select_db ตามชื่อที่แนะนำ จะเป็นการเลือกฐานข้อมูลที่คุณต้องการเชื่อมต่อ เทียบเท่ากับคำสั่ง "ใช้" ในตัวอย่างนี้ เรากำลังเชื่อมต่อกับฐานข้อมูล db
  • ฟังก์ชัน mysql_query - ใช้เพื่อระบุแบบสอบถาม MySQL ของคุณ ในตัวอย่างนี้ เราเลือกคอลัมน์ id จากฐานข้อมูลเมือง
  • mysql_fetch_row. ใช้ฟังก์ชันนี้เพื่อแยกแถวออกจากแบบสอบถาม SQL ที่เราเพิ่งสร้างขึ้น
  • สุดท้ายให้ปิดการเชื่อมต่อโดยใช้คำสั่ง mysql_close ดังที่แสดงด้านบน
เมื่อคุณเรียก mysql-legacy.php ข้างต้นจากเบราว์เซอร์ของคุณ คุณจะเห็นผลลัพธ์ต่อไปนี้ ซึ่งบ่งชี้ว่า PHP สามารถเชื่อมต่อกับฐานข้อมูล MySQL และดึงข้อมูลได้:

เชื่อมต่อกับฐานข้อมูลแล้ว id 1: 1 นี่คือวิธีที่คุณสามารถเชื่อมต่อกับ MySQL ขอย้ำอีกครั้งว่าควรใช้สองวิธีแรกดีกว่า โอ