คอมพิวเตอร์ Windows อินเทอร์เน็ต

การใช้ mysql ใน php.ini พื้นฐานการทำงานกับ MySQL ใน PHP กำลังเชื่อมต่อกับฐานข้อมูล MySQL

MySQL เป็นฐานข้อมูลเชิงสัมพันธ์ประเภทหนึ่ง MySQL เป็นเซิร์ฟเวอร์ที่ผู้ใช้หลายคนสามารถเชื่อมต่อได้

เมื่อคุณเชื่อมต่ออินเทอร์เน็ต คุณต้องป้อนชื่อผู้ใช้และรหัสผ่าน รวมทั้งชื่อเซิร์ฟเวอร์ที่คุณกำลังเชื่อมต่อ ระบบเดียวกันนี้ใช้เมื่อทำงานกับ MySQL

อีกประเด็นหนึ่ง: ฐานข้อมูลเชิงสัมพันธ์คืออะไร? เชิงสัมพันธ์หมายถึงตามตาราง โปรแกรมแก้ไขสเปรดชีตที่มีชื่อเสียงของ Microsoft Excel เป็นโปรแกรมแก้ไขฐานข้อมูลเชิงสัมพันธ์

กำลังเชื่อมต่อกับเซิร์ฟเวอร์ MySQL

PHP ใช้ฟังก์ชัน mysqli_connect () เพื่อเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ฟังก์ชันนี้รับอาร์กิวเมนต์สามตัว: ชื่อเซิร์ฟเวอร์ ชื่อผู้ใช้ และรหัสผ่าน

ฟังก์ชัน mysqli_connect () ส่งคืนตัวระบุการเชื่อมต่อ มันถูกเก็บไว้ในตัวแปรและใช้เพื่อทำงานกับฐานข้อมูลในภายหลัง

รหัสการเชื่อมต่อเซิร์ฟเวอร์ MySQL:

$ link = mysqli_connect ("localhost", "root", "");

ในกรณีนี้ ฉันกำลังทำงานกับเครื่องท้องถิ่นของฉันบน Denwere ดังนั้นชื่อโฮสต์คือ localhost ชื่อผู้ใช้คือรูท และไม่มีรหัสผ่าน

การเชื่อมต่อจะต้องปิดหลังจากใช้งาน MySQL เสร็จแล้ว ฟังก์ชัน mysqli_close () ใช้เพื่อปิดการเชื่อมต่อ ขยายตัวอย่าง:

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_close (ลิงก์ $);

ที่นี่เราตรวจสอบตัวระบุการเชื่อมต่อเพื่อหาความจริง หากมีบางอย่างผิดปกติกับการเชื่อมต่อของเรา โปรแกรมจะไม่ทำงาน ฟังก์ชัน die () จะหยุดการทำงานและแสดงข้อความแสดงข้อผิดพลาดในเบราว์เซอร์

ข้อผิดพลาดในการเชื่อมต่อ

ฟังก์ชันต่อไปนี้ใช้ตรวจสอบการเชื่อมต่อ:

  • mysqli_connect_errno () - ส่งกลับรหัสข้อผิดพลาดของความพยายามในการเชื่อมต่อครั้งล่าสุด คืนค่าศูนย์หากไม่มีข้อผิดพลาด
  • mysqli_connect_error () - ส่งคืนคำอธิบายข้อผิดพลาดล่าสุดในการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL
กำหนด ("HOST", "localhost"); กำหนด ("DB_USER", "root"); กำหนด ("DB_PASSWORD", ""); กำหนด ("DB", "ผู้ทดสอบ"); $ ลิงค์ = mysqli_connect (HOST, DB_USER, DB_PASSWORD, DB); / * ตรวจสอบการเชื่อมต่อ * / if (mysqli_connect_errno ()) (printf ("Failed to connect:% s \ n", mysqli_connect_error ()); exit ();) else (printf ("Failed to connect:% s \ n ", mysqli_get_host_info ($ ลิงก์));)

Mysqli_get_host_info () ส่งคืนสตริงที่มีประเภทของการเชื่อมต่อที่ใช้

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

การเลือกฐานข้อมูล

สามารถมีหลายฐานข้อมูลบนเซิร์ฟเวอร์ MySQL ก่อนอื่นเราต้องเลือกฐานที่เราต้องการสำหรับการทำงาน PHP มีอีกหนึ่งพารามิเตอร์สำหรับสิ่งนี้ในฟังก์ชัน mysqli_connect () - ชื่อของฐานข้อมูล

ฉันสร้างมันบนคอมพิวเตอร์ของฉันผ่าน phpMyAdmin ชื่อผู้ทดสอบ เราเชื่อมต่อกับมัน:

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysql_close (ลิงก์ $);

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

สร้างตาราง

ในชื่อของฐานข้อมูล MySQL ส่วน SQL ย่อมาจาก Structured Query Language ซึ่งแปลเป็นภาษาการสืบค้นที่มีโครงสร้าง เราจะเขียนคำสั่งใน SQL และส่งไปยังเซิร์ฟเวอร์ MySQL จากโปรแกรม PHP

ในการสร้างตาราง เราเพียงแค่ระบุคำสั่ง CREATE TABLE มาสร้างตารางชื่อผู้ใช้ในคอลัมน์ที่จะเก็บล็อกอิน (คอลัมน์ล็อกอิน) และรหัสผ่าน (คอลัมน์รหัสผ่าน) ของผู้ใช้ไว้

$ query = "สร้างผู้ใช้ตาราง (เข้าสู่ระบบ VARCHAR (20), รหัสผ่าน VARCHAR (20))";

ในโค้ดนี้ เราได้กำหนดตัวแปรการสืบค้น $ เป็นสตริงข้อความที่แสดงถึงการสืบค้น SQL เราสร้างตารางที่ชื่อผู้ใช้ซึ่งมีการเข้าสู่ระบบและรหัสผ่านสองคอลัมน์ ซึ่งทั้งสองมีประเภทข้อมูล VARCHAR (20) เราจะพูดถึงประเภทข้อมูลในภายหลัง ตอนนี้ฉันจะสังเกตว่า VARCHAR (20) เป็นสตริงที่มีความยาวสูงสุด 20 อักขระ

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

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ query = "สร้างผู้ใช้ตาราง (เข้าสู่ระบบ VARCHAR (20), รหัสผ่าน VARCHAR (20))"; mysqli_query ($ แบบสอบถาม); mysqli_close (ลิงก์ $);

ไม่จำเป็นต้องเขียนแบบสอบถาม SQL ไปยังตัวแปร สามารถเขียนโดยตรงเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน mysql_query () เป็นเพียงว่ารหัสดูอ่านง่ายขึ้น

สคริปต์นี้มีข้อเสียเปรียบเพียงข้อเดียว - ไม่ได้ส่งออกสิ่งใดไปยังเบราว์เซอร์ มาเพิ่มข้อความ:

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ query = "สร้างผู้ใช้ตาราง (เข้าสู่ระบบ VARCHAR (20), รหัสผ่าน VARCHAR (20))"; if (mysqli_query ($ query)) echo "ตารางถูกสร้างขึ้นแล้ว"; else echo "ไม่ได้สร้างตาราง"; mysqli_close (ลิงก์ $);

หากเราเรียกใช้สคริปต์นี้อีกครั้งเพื่อดำเนินการ เราจะเห็นข้อความในเบราว์เซอร์: "The table is not created" ความจริงก็คือตารางถูกสร้างขึ้นเมื่อเริ่มต้นครั้งแรก และเป็นไปไม่ได้ที่จะสร้างตารางใหม่ด้วยชื่อเดียวกัน เรากำลังเผชิญกับสถานการณ์ข้อผิดพลาด ดังนั้นถึงเวลาต้องพูดถึงการจัดการข้อผิดพลาดเมื่อทำงานกับ MySQL

เกิดข้อผิดพลาดในการประมวลผล

เมื่อทำการดีบั๊กโปรแกรม เราอาจต้องการข้อมูลที่แม่นยำเกี่ยวกับข้อผิดพลาด เมื่อมีข้อผิดพลาดเกิดขึ้นใน MySQL เซิร์ฟเวอร์ฐานข้อมูลจะกำหนดหมายเลขข้อผิดพลาดและสตริงที่อธิบายข้อผิดพลาด PHP มีฟังก์ชันพิเศษในการเข้าถึงข้อมูลนี้

  • mysqli_errno () - ส่งกลับหมายเลขข้อผิดพลาด
  • mysqli_error () - ส่งกลับสตริงที่อธิบายข้อผิดพลาด

ตอนนี้ มาเพิ่มฟังก์ชัน mysql_error () ให้กับสคริปต์ของเรา:

$ link = mysql_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ query = "สร้างผู้ใช้ตาราง (เข้าสู่ระบบ VARCHAR (20), รหัสผ่าน VARCHAR (20))"; if (mysqli_query ($ แบบสอบถาม)) echo "ตารางถูกสร้างขึ้น"; อื่น echo "ไม่ได้สร้างตาราง:" .mysqli_error (); mysqli_close (ลิงก์ $);

ตอนนี้สคริปต์ของเราจะส่งคืนบรรทัดไปที่เบราว์เซอร์: "ไม่ได้สร้างตาราง: ผู้ใช้ตาราง" "มีอยู่แล้ว"

ล้มโต๊ะ

ตอนนี้เรามีโต๊ะที่เราไม่ต้องการแล้ว ได้เวลาเรียนรู้วิธีลบตารางออกจากฐานข้อมูลแล้ว

หากต้องการวางตาราง ให้ใช้คำสั่ง DROP TABLE ตามด้วยชื่อตาราง

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ query = "ผู้ใช้ DROP Table"; if (! mysqli_query ($ แบบสอบถาม)) echo "เกิดข้อผิดพลาดขณะลบตาราง:" .mysqli_error (); else echo "ตารางถูกลบไปแล้ว"; mysqli_close (ลิงก์ $);

ผลลัพธ์

ดังนั้นเราจึงเข้าใจพื้นฐานของ MySQL สิ่งที่เราได้เรียนรู้ที่จะทำ:

  • เชื่อมต่อกับฐานข้อมูล MySQL โดยใช้ฟังก์ชัน mysqli_connect ()
  • ปิดการเชื่อมต่อกับเซิร์ฟเวอร์ MySQL โดยใช้ฟังก์ชัน mysqli_close ()
  • ส่งคำสั่ง SQL ไปยังเซิร์ฟเวอร์ MySQL โดยใช้ฟังก์ชัน mysqli_query ()
  • เราเรียนรู้การสืบค้น SQL สำหรับการสร้างตาราง: สร้างตาราง
  • เราเรียนรู้การสืบค้น SQL เพื่อวางตาราง: ตารางวาง
  • เราได้เรียนรู้วิธีจัดการกับข้อผิดพลาดโดยใช้ฟังก์ชัน mysqli_errno () และ mysqli_error ()

จากนั้นเราจะพิจารณาประเภทข้อมูล MySQL อย่างละเอียดยิ่งขึ้น

เราอ่านบทเรียนต่อไปนี้:

ฉันตั้งชื่อฐานของฉันว่า "phptest" หลังจากคลิกที่ปุ่ม "สร้าง" คุณควรจะถูกโอนไปยังฐานข้อมูลที่คุณสร้างขึ้นโดยอัตโนมัติ

สร้างตารางในฐานข้อมูล

ไม่มีอะไรซับซ้อนในขั้นตอนนี้เช่นกัน มาสร้างตารางที่เราจะเก็บชื่อบทความและข้อความของเรา:

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

หลังจากกรอกชื่อและจำนวนช่องแล้วให้กด "ตกลง" เราจะเข้าสู่หน้าสร้างช่อง ฉันขอสารภาพกับคุณ ฉันไม่เข้าใจจริงๆ ว่าฉันกำลังทำอะไรเมื่อสร้างฟิลด์ แต่สิ่งนี้ไม่ได้ขัดขวางฉันจากการทำงานกับฟิลด์เหล่านี้ กรอกข้อมูลดังนี้:

และกรอกข้อมูลในสองฟิลด์ที่เราต้องการ:

ทำไมแค่สองคน? เนื่องจากฟิลด์ ID แรกจะถูกกรอกโดยอัตโนมัติโดย AUTO_INCREMENT คลิก "ตกลง" ในแท็บ "ภาพรวม" คุณจะเห็นบรรทัดที่เราสร้างในตาราง:

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

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

การส่งออกบันทึกจากฐานข้อมูล

มาเริ่มกันตั้งแต่ตอนที่สร้างโปรเจ็กต์ คุณต้องเห็นกระบวนการอย่างชัดเจน และไม่มีเอาต์พุตจึงเป็นเรื่องยากที่จะทำ (ฉันจะทำงานกับไฟล์ test.php อย่าแปลกใจเมื่อคุณเห็นลิงก์ไปยังไฟล์นี้ ในรหัส) เราจะถอนตัวอย่างไร? ก่อนอื่นเราต้องเชื่อมต่อกับฐานข้อมูล หลังจาก do while loop (เรียนรู้ PHP - ลูป) เราจะดึงบันทึกจากฐานข้อมูล มาเริ่มกันเลย

  • การเชื่อมต่อฐานข้อมูล

การเชื่อมต่อเกิดขึ้นได้อย่างไร? ให้ความสนใจกับไวยากรณ์:

mysql_select_db (ชื่อ DB, mysql_connect (เซิร์ฟเวอร์, ชื่อผู้ใช้ DB, รหัสผ่านผู้ใช้ DB));

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






// การเชื่อมต่อกับฐานข้อมูล (DB)

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

  • เอาท์พุทข้อมูล

เราจำเป็นต้องแสดงข้อมูลจากตารางหน้า ให้ความสนใจกับไวยากรณ์ของผลลัพธ์:

$ result = mysql_query ("เลือกเพื่อแยกจากชื่อตารางในฐานข้อมูล");

บรรทัดแรกช่วยให้เราระบุคอลัมน์ที่เราจำเป็นต้องดึงออกมา และจากฐานข้อมูลใด

บรรทัดที่สองใส่ทุกอย่างที่พบลงในตัวแปร ...

ความสนใจมีสองจุดที่ฉันต้องการชี้แจง มาแก้ปัญหาต่าง ๆ กันเถอะ:

  • เราจำเป็นต้องดึงฟิลด์ทั้งหมดออกจากตาราง

ฉันจะดึงเขตข้อมูลทั้งหมดจากตารางหน้าได้อย่างไร แบบนี้:

$ result = mysql_query ("หน้าเลือก * จาก");
$ myrow = mysql_fetch_array ($ ผล);

คุณอาจสังเกตเห็นว่าฉันใส่เครื่องหมายดอกจัน (*) หลัง SELECT เครื่องหมายดอกจันหมายความว่าฉันต้องแยก ทุกช่องจากตาราง

  • เราต้องดึงหนึ่งฟิลด์ออกจากตารางเท่านั้น

จะดึงเฉพาะฟิลด์ข้อความจากตารางได้อย่างไร? แบบนี้:

$ result = mysql_query ("เลือกข้อความจากหน้า");
$ myrow = mysql_fetch_array ($ ผล);

เพื่อที่จะดึงฟิลด์ไม่ทั้งหมด แต่เพียงบางส่วน จำเป็นต้องแสดงรายการฟิลด์ที่จำเป็นหลังจาก SELECT คั่นด้วยเครื่องหมายจุลภาค

  • เราต้องดึงเขตข้อมูลไม่ได้จากทุกตาราง แต่จากหนึ่งบรรทัดเท่านั้น

ฉันจะเอาเขตข้อมูลทั้งหมดออกจากแถวแรกได้อย่างไร เรารู้ว่าบรรทัดแรกมี id เท่ากับหนึ่ง ลองใช้ความรู้นี้:

หลังจาก SELECT ฉันอธิบายว่าฟิลด์ใดที่ต้องแยก คั่นด้วยเครื่องหมายจุลภาค แล้วเพิ่มบรรทัดใหม่ โดยที่ (ซึ่งหมายถึง "ที่ไหน") id คือ 1 ดังนั้นฉันจึงดึงฟิลด์ที่ฉันต้องการออกจากบรรทัดที่ id เป็นหนึ่ง

เรามาเริ่มสร้างผลงานของบทความของเรากันดีไหม? เราจะแสดงเฉพาะส่วนหัว มาเริ่มกันเลย:


$ myrow = mysql_fetch_array ($ ผล);

ทำ
{
echo "". $ myrow. "
";
}

เราทำอะไรไปบ้าง? เราดึงสองฟิลด์ออกจากตาราง id และชื่อ ต่อไป เราเริ่มต้น do while loop (Learning PHP - Loops) และสร้างลิงก์โดยใช้ข้อมูลที่นำออกจากฐานข้อมูล ข้อมูลถูกเก็บไว้ในตัวแปร $ myrow ตัวแปรนี้คืออาร์เรย์ คีย์ไปยังอาร์เรย์คือชื่อของฟิลด์ของเราในฐานข้อมูล นี่คือสิ่งที่เกิดขึ้น:

มีเอาต์พุตของส่วนหัว ตอนนี้มาจัดระเบียบเอาต์พุตของข้อความทั้งหมดเมื่อคุณคลิกลิงก์ที่มีส่วนหัว ในการดำเนินการนี้ในไฟล์เดียว ให้เพิ่มเงื่อนไข if () () ดังนี้

// การเชื่อมต่อกับฐานข้อมูล (DB)
$ nameDB = "phptest"; // ชื่อฐานข้อมูล
$ nameSERVER = "localhost"; // เซิร์ฟเวอร์
$ nameUSER = "root"; // ชื่อผู้ใช้ฐานข้อมูล
$ passUSER = ""; // รหัสผ่านผู้ใช้ฐานข้อมูล
mysql_select_db ($ nameDB, mysql_connect ($ nameSERVER, $ nameUSER, $ passUSER));
// การเชื่อมต่อกับฐานข้อมูล (DB)

// แสดงส่วนหัว
if (! isset ($ _ GET ["id"]))
{
$ result = mysql_query ("เลือก id, ชื่อจากหน้า");
$ myrow = mysql_fetch_array ($ ผล);

ทำ
{
echo "". $ myrow. "
";
}
ในขณะที่ ($ myrow = mysql_fetch_array ($ ผล));
}
// แสดงส่วนหัว

// แสดงข้อความเต็ม
if (isset ($ _ GET ["id"]))
{

$ myrow = mysql_fetch_array ($ ผล);

ก้อง $ myrow;
}
// แสดงข้อความเต็ม
?>

ฉันเพิ่มสองเงื่อนไข เราจะเห็นรายการที่มีส่วนหัวก็ต่อเมื่อไม่มีตัวแปรส่วนกลาง $ _GET ["id"] เราจะเห็นข้อความเต็มก็ต่อเมื่อมีตัวแปรนี้อยู่ ในกรณีนี้ เราจะแสดงเพียงระเบียนเดียวที่เราต้องการจากฐานข้อมูล นี่คือสิ่งที่เราได้รับ:

ตอนนี้ฉันคิดว่าถึงเวลาเรียนรู้วิธีเพิ่มแถวใหม่ลงในตารางแล้ว

การเพิ่มข้อมูลลงในฐานข้อมูล

เราจะเริ่มเพิ่มโดยการสร้างแบบฟอร์ม นี่คือโค้ดบางส่วนที่ต้องเพิ่มที่ส่วนท้ายของไฟล์ของเรา:

// แบบฟอร์มเพิ่มบันทึก
if (isset ($ _ GET ["add"]))
{
เสียงสะท้อน "







";
}
// แบบฟอร์มเพิ่มบันทึก

แบบฟอร์มนี้จะปรากฏขึ้นก็ต่อเมื่อจะมีตัวแปรส่วนกลาง $ _GET ["add"] ดังนั้นคุณจึงต้องแทรกลิงก์ที่ด้านล่างเพื่อเพิ่มบทความใหม่ วิธีที่ดีที่สุดในการทำเช่นนี้คือในโค้ดเอาต์พุตส่วนหัว คุณยังสามารถแก้ไขเงื่อนไขสำหรับเอาต์พุตของส่วนหัวได้ดังนี้:

// แสดงส่วนหัว
if (! isset ($ _ GET ["id"]) AND! isset ($ _ GET ["add"]))
{
$ result = mysql_query ("เลือก id, ชื่อจากหน้า");
$ myrow = mysql_fetch_array ($ ผล);

ทำ
{
echo "". $ myrow. "
";
}
ในขณะที่ ($ myrow = mysql_fetch_array ($ ผล));

เสียงสะท้อน "


เพิ่มโพสต์ ";
}
// แสดงส่วนหัว

ฉันแก้ไขเงื่อนไขในลักษณะที่รายการส่วนหัวไม่ปรากฏขึ้นเมื่อแสดงแบบฟอร์ม นี่คือสิ่งที่เกิดขึ้น:

$ result = mysql_query ("INSERT INTO ชื่อตารางฐานข้อมูล (DB field 1, DB field 2) VALUES (" data 1 "," data 2 ")");

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

// เพิ่มบันทึก

{

ส่วนหัว ("ตำแหน่ง: test.php");
ทางออก;
}
// เพิ่มบันทึก

เงื่อนไขคือตัวแปรส่วนกลาง $ _POST นั่นคือหากเรากรอกแบบฟอร์มให้คลิกที่ปุ่ม "เพิ่มโพสต์" เงื่อนไขของเราจะถูกเรียกใช้ ฟิลด์หัวเรื่องจะมีข้อมูลจากตัวแปรส่วนกลาง $ _POST และฟิลด์ข้อความ - $ _POST ถัดไป บรรทัดส่วนหัว ("location: test.php") จะทำงาน อนุญาตให้คุณเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าอื่น ในกรณีนี้ หน้านี้จะเป็น test.php และทางออกสาย; ขัดจังหวะการทำงานของสคริปต์อื่น นี่คือสิ่งที่เกิดขึ้น:

การแก้ไขข้อมูลในฐานข้อมูล

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

// แสดงข้อความเต็ม
if (isset ($ _ GET ["id"]))
{
$ result = mysql_query ("เลือกข้อความจากหน้า WHERE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ ผล);

ก้อง $ myrow;
เสียงสะท้อน "


แก้ไขข้อความ ";
}
// แสดงข้อความเต็ม


if (isset ($ _ GET ["edd"]))
{

$ myrow = mysql_fetch_array ($ ผล);

เสียงสะท้อน "








";
}
// แบบฟอร์มแก้ไขบันทึก

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

ตอนนี้ เพื่อที่ว่าเมื่อแบบฟอร์มนี้ปรากฏบนหน้าจอจะไม่มีรายการส่วนหัว เราจะแก้ไขเงื่อนไข:

// แสดงส่วนหัว

{
$ result = mysql_query ("เลือก id, ชื่อจากหน้า");
$ myrow = mysql_fetch_array ($ ผล);

ทำ
{
echo "". $ myrow. "
";
}
ในขณะที่ ($ myrow = mysql_fetch_array ($ ผล));

เสียงสะท้อน "


เพิ่มโพสต์ ";
}
// แสดงส่วนหัว

ได้เวลาค้นหาวิธีการแก้ไขบันทึกในฐานข้อมูล นี่คือไวยากรณ์:

ทีนี้มาเขียนตัวจัดการกัน นี่คือโค้ดบางส่วนที่ฉันเพิ่มทันทีหลังจากตัวจัดการการเพิ่มระเบียน:

// แก้ไขบันทึก

{

ส่วนหัว ("ตำแหน่ง: test.php");
ทางออก;
}
// แก้ไขบันทึก

ตามเงื่อนไขจะเห็นได้ว่าตัวจัดการจะเปิดตัวต่อเมื่อเราคลิกที่ปุ่ม "แก้ไขโพสต์" ถัดมาคือการอัปเดตฐานข้อมูล ในช่องหัวเรื่อง เราจะใส่ค่าของตัวแปรส่วนกลาง $ _POST และในช่องข้อความ - $ _POST เราจะแก้ไขบรรทัดที่มี id เท่ากับตัวแปรส่วนกลาง $ _POST จากนั้นเราเปลี่ยนเส้นทางผู้ใช้กลับไปที่รายการส่วนหัว:

การลบบันทึกออกจากฐานข้อมูล

สิ่งสุดท้ายที่เราต้องเรียนรู้คือการลบ .. มันง่ายกว่าอย่างอื่นทั้งหมด ดังนั้นให้ใส่ใจกับไวยากรณ์:

ในการลบบันทึกบางส่วน คุณต้องวางลิงก์ไว้ที่ใดที่หนึ่งในเธรดที่ผู้ใช้สามารถลบบันทึกบางส่วนได้ ... ให้วางลิงก์นี้ในผลลัพธ์ของข้อความเต็มของโพสต์:

// แสดงข้อความเต็ม
if (isset ($ _ GET ["id"]))
{
$ result = mysql_query ("เลือกข้อความจากหน้า WHERE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ ผล);

ก้อง $ myrow;
เสียงสะท้อน "


แก้ไขข้อความ ";
เสียงสะท้อน "
ลบโพสต์ ";
}
// แสดงข้อความเต็ม

ผลงาน

นี่คือรหัสที่สมบูรณ์สำหรับโพสต์ของวันนี้:

// การเชื่อมต่อกับฐานข้อมูล (DB)
$ nameDB = "phptest"; // ชื่อฐานข้อมูล
$ nameSERVER = "localhost"; // เซิร์ฟเวอร์
$ nameUSER = "root"; // ชื่อผู้ใช้ฐานข้อมูล
$ passUSER = ""; // รหัสผ่านผู้ใช้ฐานข้อมูล
mysql_select_db ($ nameDB, mysql_connect ($ nameSERVER, $ nameUSER, $ passUSER));
// การเชื่อมต่อกับฐานข้อมูล (DB)

// เพิ่มบันทึก
if (isset ($ _ POST ["title_post"]) และ isset ($ _ POST ["text_post"]))
{
$ result = mysql_query ("INSERT INTO หน้า (ชื่อ, ข้อความ) VALUES (" $ _POST "," $ _ POST ")");
ส่วนหัว ("ตำแหน่ง: test.php");
ทางออก;
}
// เพิ่มบันทึก

// แก้ไขบันทึก
if (isset ($ _ POST ["title_post_edd"]) และ isset ($ _ POST ["text_post_edd"]))
{
$ result = mysql_query ("อัปเดตหน้า SET title =" (! LANG: $ _ POST", text="$_POST" WHERE id="$_POST"");!}
ส่วนหัว ("ตำแหน่ง: test.php");
ทางออก;
}
// แก้ไขบันทึก

// ลบบันทึก
if (isset ($ _ GET ["del"]))
{
$ result = mysql_query ("ลบออกจากหน้า WHERE id =" $ _ GET "");
ส่วนหัว ("ตำแหน่ง: test.php");
ทางออก;
}
// ลบบันทึก

// แสดงส่วนหัว
if (! isset ($ _ GET ["id"]) AND! isset ($ _ GET ["add"]) AND! isset ($ _ GET ["edd"]))
{
$ result = mysql_query ("เลือก id, ชื่อจากหน้า");
$ myrow = mysql_fetch_array ($ ผล);

ทำ
{
echo "". $ myrow. "
";
}
ในขณะที่ ($ myrow = mysql_fetch_array ($ ผล));

เสียงสะท้อน "


เพิ่มโพสต์ ";
}
// แสดงส่วนหัว

// แสดงข้อความเต็ม
if (isset ($ _ GET ["id"]))
{
$ result = mysql_query ("เลือกข้อความจากหน้า WHERE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ ผล);

ก้อง $ myrow;
เสียงสะท้อน "


แก้ไขข้อความ ";
เสียงสะท้อน "
ลบโพสต์ ";
}
// แสดงข้อความเต็ม

// แบบฟอร์มเพิ่มบันทึก
if (isset ($ _ GET ["add"]))
{
เสียงสะท้อน "







";
}
// แบบฟอร์มเพิ่มบันทึก

// แบบฟอร์มแก้ไขบันทึก
if (isset ($ _ GET ["edd"]))
{
$ result = mysql_query ("เลือก * จากหน้า WHERE id =" $ _ GET "");
$ myrow = mysql_fetch_array ($ ผล);

เสียงสะท้อน "








";
}
// แบบฟอร์มแก้ไขบันทึก
?>

บทสรุป

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

ป.ล.: ไฟล์ mdf คืออะไร? วิธีการเปิด? ฉันจะเปิดมันได้อย่างไร สามารถตอบคำถามเหล่านี้และคำถามมากมายได้ที่ voprosi4ek.ru

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

ตอนนี้เราจะเจาะลึกลงไปในแบบสอบถาม MySQL มาเริ่มกันเลย!

การสร้างตาราง - CREATE TABLE

ตอนนี้เรามีฐานข้อมูลเปล่า ไม่มีตารางอยู่ในนั้น เรามาสร้างตารางกันก่อน เรารู้วิธีการทำเช่นนี้ตั้งแต่ส่วนแรกแล้ว

นี่คือรหัสสคริปต์ที่จะสร้างเพลตที่เราต้องการ:

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ query = "สร้างผู้ใช้ตาราง (เข้าสู่ระบบ VARCHAR (20), รหัสผ่าน VARCHAR (20))"; if (mysqli_query ($ link, $ query)) echo "ตารางถูกสร้างขึ้น"; อื่น echo "ไม่ได้สร้างตาราง:" .mysqli_error (); mysqli_close (ลิงก์ $);

มีเพียงสองฟิลด์ในตารางของเรา: ล็อกอินและรหัสผ่าน สำหรับตอนนี้ เราไม่ต้องการอะไรอีกแล้ว อย่าให้กระบวนการนี้ซับซ้อน

ดังนั้นตารางจึงถูกสร้างขึ้น

การเพิ่มแถว (บันทึก) ลงในตาราง - INSERT

คุณสามารถเพิ่มแถวใหม่ลงในตารางได้โดยใช้คำสั่งแทรก SQL นี่คือตัวอย่าง:

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ query = "INSERT INTO ผู้ใช้ (ล็อกอิน, รหัสผ่าน) VALUE (" zeus "," pass123 ")"; if (mysqli_query ($ link, $ query)) echo "เพิ่มผู้ใช้แล้ว"; อื่น echo "ไม่มีการเพิ่มผู้ใช้:" mysqli_error (); mysqli_close (ลิงก์ $);

คิวรี SQL ประกอบด้วยคำสั่ง INSERT INTO ชื่อฐานข้อมูล ผู้ใช้ จากนั้นชื่อฟิลด์ในวงเล็บ ตามด้วยคำว่า VALUE ตามด้วยค่าที่เพิ่มในวงเล็บ ค่าถูกยกมา

ไวยากรณ์สำหรับคำขอมีลักษณะดังนี้:

INSERT INTO table_name (คอลัมน์1, คอลัมน์2) VALUE ("x1", "x2")

ต้องใช้เครื่องหมายคำพูดในวงเล็บที่สอง

ตัวแปรสามารถแทนที่ค่าได้ นี่คือตัวอย่าง:

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ เข้าสู่ระบบ = "ซุส"; $ รหัสผ่าน = "pass123"; $ query = "INSERT INTO ผู้ใช้ (ล็อกอิน, รหัสผ่าน) VALUE (" $ ล็อกอิน "," $ รหัสผ่าน ")"; if (mysqli_query ($ link, $ query)) echo "เพิ่มผู้ใช้แล้ว"; อื่น echo "ไม่มีการเพิ่มผู้ใช้:" mysqli_error (); mysqli_close (ลิงก์ $);

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

มีวิธีที่รวดเร็วในการแทรกหลายแถวด้วยแบบสอบถาม INSERT เดียว:

INSERT INTO ผู้ใช้ (ล็อกอิน, รหัสผ่าน) VALUE ("bob", "eee333"), ("Rooki", "12345"), ("magy", "olol88e8")

อย่างที่คุณเห็น ข้อมูลที่แจกแจงไว้จะถูกคั่นด้วยเครื่องหมายจุลภาค

ด้วยการใช้คำสั่ง INSERT เราจึงได้เรียนรู้วิธีเพิ่มระเบียนลงในตาราง ก้าวต่อไป.

มุมมองตาราง: คำสั่ง SELECT

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

หากต้องการดึงข้อมูลจากตาราง ให้ใช้คำสั่ง SQL SELECT เครื่องหมาย * หมายความว่าเรากำลังขอข้อมูลทั้งหมด จากนั้นหลังจากคำว่า FROM เราจะเขียนชื่อของตารางที่เราต้องการรับข้อมูล

ลองสอบถามข้อมูลทั้งหมดจากตารางผู้ใช้:

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ query = "เลือก * จากผู้ใช้"; $ ผล = mysqli_query ($ ลิงค์ $ แบบสอบถาม); if (! $ result) echo "เกิดข้อผิดพลาด:" mysqli_error (); อื่น echo "ข้อมูลที่ได้รับ"; mysqli_close (ลิงก์ $);

ฟังก์ชัน mysqli_query () ส่งคืนตัวระบุผลลัพธ์ของแบบสอบถามให้เรา - เราใส่ไว้ในตัวแปรและในอนาคตเราจะทำงานกับมันโดยใช้ฟังก์ชัน PHP อื่น ๆ

จำนวนบันทึกในคำขอ

ลองหาว่ามีกี่แถวในแบบสอบถามของเรา? ฉันได้เรียกใช้สคริปต์เพื่อเพิ่มระเบียนลงในตารางด้วยตัวเอง ฉันจำไม่ได้ว่ากี่ครั้งแล้ว และตอนนี้ฉันไม่รู้ว่าตารางของฉันมีกี่แถว

ฟังก์ชัน mysqli_num_rows () ใช้เพื่อกำหนดจำนวนแถวในผลลัพธ์ของคิวรี ฟังก์ชันนี้จะถูกส่งผ่านตัวระบุผลลัพธ์ของคิวรี และจะส่งกลับจำนวนเรคคอร์ด

$ link = mysqli_connect ("localhost", "root", "", "ผู้ทดสอบ"); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); $ query = "เลือก * จากผู้ใช้"; $ ผล = mysqli_query ($ ลิงค์ $ แบบสอบถาม); if (! $ result) echo "เกิดข้อผิดพลาด:" mysqli_error (); อื่น echo "ข้อมูลที่ได้รับ"; จำนวน $ = mysqli_num_rows ($ ผล); echo "จำนวนแถวในตาราง: $ count"; mysqli_close (ลิงก์ $);

ถ้าเราต้องการหาจำนวนเรคคอร์ดในตาราง วิธีการที่กำหนดก็ไม่ใช่วิธีที่เหมาะสมที่สุด ที่นี่เราพบจำนวนระเบียนที่พบในแบบสอบถาม แต่จำนวนระเบียนในตารางมีการค้นหาแตกต่างกัน

จำนวนระเบียนในตาราง SELECT COUNT (*)

หากต้องการทราบจำนวนระเบียนในตาราง คุณสามารถใช้คำสั่ง SELECT COUNT (*) FROM table_name

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); $ query = "เลือก * จากผู้ใช้"; $ ผล = mysqli_query ($ ลิงค์ $ แบบสอบถาม); if (! $ result) echo "เกิดข้อผิดพลาด:" mysqli_error (); อื่น echo "ข้อมูลที่ได้รับ"; จำนวน $ = mysqli_fetch_row ($ ผล); echo "จำนวนแถวในตาราง: $ count"; mysqli_close (ลิงก์ $);

โปรดทราบว่าเราได้ใช้ฟังก์ชัน PHP ใหม่ mysqli_fetch_row () เพื่อดึงข้อมูล ฟังก์ชันนี้จะคืนค่าแถวของผลลัพธ์ของคิวรีในรูปแบบของอาร์เรย์อย่างง่าย ในกรณีของเรามีฟิลด์หนึ่งฟิลด์ในแถวและมีดัชนี 0

การดูผลลัพธ์ของการสืบค้นแบบวนซ้ำ

หลังจากดำเนินการค้นหา SQL ด้วยคำสั่ง SELECT และรับตัวระบุผลลัพธ์ของแบบสอบถาม PHP จะสร้างตัวชี้ภายในในชุดระเบียนผลลัพธ์ ตัวชี้นี้จะย้ายไปยังระเบียนถัดไปโดยอัตโนมัติหลังจากอ้างอิงถึงระเบียนปัจจุบัน กลไกนี้ทำให้ง่ายต่อการวนรอบชุดผลลัพธ์ของแบบสอบถาม SELECT

PHP มีฟังก์ชันหลายอย่างซึ่งคุณสามารถรับอาร์เรย์ที่ประกอบด้วยฟิลด์สำหรับแต่ละบรรทัดของการสืบค้นผลลัพธ์ ลองใช้ฟังก์ชัน mysqli_fetch_row () เป็นตัวอย่าง ฟังก์ชันนี้จะถูกส่งผ่าน ID คำขอและส่งคืนอาร์เรย์ ดังนั้นในลูปผลลัพธ์การค้นหาทั้งหมดจะถูกสแกน เมื่อถึงจุดสิ้นสุดของผลลัพธ์การสืบค้น ฟังก์ชันจะส่งกลับค่าเท็จ

ดังนั้นเราจึงสืบค้นข้อมูลทั้งหมดจากตารางผู้ใช้ (SELECT * FROM users)


"; while ($ row = mysqli_fetch_row ($ result)) (echo" เข้าสู่ระบบ: $ row รหัสผ่าน: $ row
";) mysqli_close ($ ลิงก์);

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

สามารถทำได้เช่นเดียวกันโดยใช้ฟังก์ชัน mysql_fetch_assoc () ซึ่งจะส่งคืนอาร์เรย์ที่เชื่อมโยง

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); $ ผล = mysqli_query ($ ลิงก์ "เลือก * จากผู้ใช้"); if (! $ result) echo "เกิดข้อผิดพลาด:" mysqli_error (); อื่น echo "ข้อมูลที่ได้รับ
"; while ($ row = mysqli_fetch_assoc ($ result)) (echo" เข้าสู่ระบบ: $ row รหัสผ่าน: $ row
";) mysqli_close ($ ลิงก์);

นอกจากนี้ยังมีฟังก์ชัน mysqli_fetch_array () - ส่งคืนอาร์เรย์ประเภทใดก็ได้ และ mysqli_fetch_object () - ส่งคืนอ็อบเจ็กต์

SELECT DISTINCT Query - ค่าฟิลด์ที่ไม่ซ้ำ

มาสร้างตารางใหม่กันเถอะ:

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); // วางตารางที่มีอยู่ mysqli_query ($ link, "DROP TABLE users"); // สร้างตารางใหม่ $ query = "สร้างผู้ใช้ตาราง (ชื่อ VARCHAR (20), นามสกุล VARCHAR (20), อายุ TINYINT ไม่ได้ลงนาม)"; if (mysqli_query ($ link, $ query)) echo "ตารางถูกสร้างขึ้น
"; else echo" ไม่ได้สร้างตาราง: ". mysqli_error (); // ฟังก์ชันสำหรับเพิ่มระเบียนในฟังก์ชันตาราง add_new_line ($ link, $ query) (if (! mysqli_query ($ link, $ query)) echo" ผู้ใช้ไม่ได้ เพิ่ม : ". mysqli_error ();) // เพิ่มระเบียน add_new_line ($ ลิงก์" INSERT INTO ผู้ใช้ (ชื่อ, นามสกุล, อายุ) VALUE ("สูงสุด", "Jayson", "33") "); add_new_line ($ ลิงก์ , "INSERT INTO ผู้ใช้ (ชื่อ, นามสกุล, อายุ) VALUE (" Bob "," Freeman "," 26 ")"); add_new_line ($ ลิงก์ "INSERT INTO ผู้ใช้ (ชื่อ, นามสกุล, อายุ) VALUE (" Sara " , "Lopes", "65") "); add_new_line ($ link," INSERT INTO ผู้ใช้ (ชื่อ, นามสกุล, อายุ) VALUE ("Serg", "Pupin", "29") "); add_new_line ($ ลิงก์, " INSERT INTO ผู้ใช้ (ชื่อ, นามสกุล, อายุ) VALUE ("Serg", "Borman", "43") "); add_new_line ($ ลิงก์" INSERT INTO ผู้ใช้ (ชื่อ, นามสกุล, อายุ) VALUE ("สูงสุด", " Lopes "," 21 ")"); // แสดงเนื้อหาของตารางในเบราว์เซอร์ $ result = mysqli_query ($ link, "SELECT * FROM users"); if (! $ Result) echo "เกิดข้อผิดพลาด: " . Mysqli_error (); else echo "ได้รับข้อมูลแล้ว
"; while ($ row = mysqli_fetch_assoc ($ result)) (echo" ชื่อ: $ row นามสกุล: $ row อายุ: $ row
";) mysqli_close ($ ลิงก์);

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

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); $ result = mysqli_query (ลิงก์ $ "เลือกชื่อ DISTINCT จากผู้ใช้"); echo "ชื่อทั้งหมด:". mysqli_num_rows ($ ผล) "
"; echo" รายชื่อ:
"; ในขณะที่ ($ ชื่อ = mysqli_fetch_row ($ ผล)) (echo" $ name
";) mysqli_close ($ ลิงก์);

แบบสอบถาม SQL "เลือก DISTINCT ชื่อจากผู้ใช้" ส่งคืนผลลัพธ์พร้อมชื่อที่ไม่ซ้ำทั้งหมดในตารางของเรา แต่ละชื่อที่ไม่ซ้ำกันในบรรทัดใหม่ในผลลัพธ์ของคิวรี

การเรียงลำดับผลลัพธ์ - ORDER BY

โดยการเพิ่มคำสั่ง ORDER BY ให้กับการสืบค้น SQL เราจัดเรียงผลลัพธ์การสืบค้นจากน้อยไปหามาก (ตัวเลขและตัวอักษรตามลำดับตัวอักษร) ต่อไปนี้คือตัวอย่างที่คุณสามารถเปรียบเทียบคิวรีปกติและจัดเรียงตามอายุ (ฟิลด์อายุ)



";) echo" เรียงตามอายุ:
"; $ result = mysqli_query ($ link," SELECT * FROM users ORDER BY age "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อ: $ line นามสกุล: $ line อายุ: $ ไลน์.
";) mysqli_close ($ ลิงก์);

คุณสามารถแทนที่ฟิลด์อายุในคำสั่ง ORDER BY ด้วยฟิลด์ชื่อและดูผลลัพธ์

ในการเรียงลำดับผลลัพธ์ของแบบสอบถามในลำดับที่กลับกัน ให้ใช้คำสั่ง ORDER BY age DESC

เงื่อนไขการจับคู่ - WHERE

โดยการเพิ่มคำสั่ง WHERE ลงในแบบสอบถาม SQL เราจะสืบค้นเฉพาะระเบียนที่ตรงกับเงื่อนไขเท่านั้น เช่น ขอคนอายุต่ำกว่า 30 ปี

เมื่อต้องการทำสิ่งนี้ ให้ใช้คำสั่ง SQL "SELECT * FROM users WHERE age

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); echo "ผู้ที่มีอายุต่ำกว่า 30 ปี:
"; $ result = mysqli_query ($ link," SELECT * FROM users WHERE อายุ<30"); while ($line = mysqli_fetch_row($result)) { echo "Имя: $line. Фамилия: $line. Возраст: $line.
";) mysqli_close ($ ลิงก์);

นอกจากนี้เรายังสามารถเรียงลำดับผลลัพธ์จากน้อยไปมากตามอายุได้ทันที:
"เลือก * จากผู้ใช้ที่อายุ<30 ORDER BY age ".

ถ้าเราสร้างแบบสอบถาม "เลือกชื่อจากผู้ใช้ที่อายุ<30 ORDER BY age ", то в результате нам вернут только значения поля "name", но они также будут отсортированы по age.

เราสามารถสอบถามค่าของสองฟิลด์: "เลือกชื่อ อายุจากผู้ใช้ WHERE อายุ

ตอนนี้ขอผู้ใช้ทั้งหมดที่ชื่อ "Max"

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); echo "สูงสุดทั้งหมด:
"; $ result = mysqli_query ($ link," SELECT * FROM users WHERE name = "Max" "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อ: $ line นามสกุล: $ line อายุ : $ line.
";) mysqli_close ($ ลิงก์);

และอีกตัวอย่างหนึ่งของข้อความค้นหา - จะเลือกเฉพาะชื่อจากตารางผู้ใช้เท่านั้น ทุกอย่างยกเว้น Max

เลือกชื่อจากผู้ใช้ WHERE name! = "Max"

นั่นคือทั้งหมดที่มีส่วนคำสั่ง WHERE

จำกัดระเบียน - LIMIT

โดยการเพิ่มคำสั่ง LIMIT ในการสืบค้น SQL เราจะจำกัดขนาดของผลลัพธ์

แบบสอบถามที่พิมพ์สามระเบียนแรก: "SELECT * FROM users LIMIT 3" มาดูกันว่ามันทำงานอย่างไร:

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); echo "เนื้อหาของตาราง:
"; $ result = mysqli_query ($ link" SELECT * FROM users "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อจริง: $ line นามสกุล: $ line อายุ: $ line
";) ก้อง"

สามรายการแรก:
"; $ result = mysqli_query ($ link," SELECT * FROM users LIMIT 3 "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อ: $ line นามสกุล: $ line อายุ: $ line .
";) ก้อง"

สามรายการที่สอง:
"; $ result = mysqli_query ($ link," SELECT * FROM users LIMIT 3, 3 "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อ: $ line นามสกุล: $ line อายุ: เส้น $ ...
";) mysqli_close ($ ลิงก์);

นอกจากนี้ เรายังใช้ข้อความค้นหา: "SELECT * FROM users LIMIT 3, 3" ทริปเปิ้ลที่สองระบุออฟเซ็ตในผลลัพธ์ของคิวรี

การจับคู่รูปแบบ - LIKE

ภาษา SQL รองรับรูปแบบที่เรียบง่าย สำหรับสิ่งนี้ จะใช้คำสั่ง LIKE และระบุรูปแบบโดยใช้อักขระ%

นี่คือตัวอย่างคิวรีที่จะส่งคืนระเบียนทั้งหมดที่มีชื่อขึ้นต้นด้วยตัวอักษร S

เลือก * จากผู้ใช้โดยที่ชื่อเช่น "S%"

ทดสอบคำขอ:

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); echo "เนื้อหาของตาราง:
"; $ result = mysqli_query ($ link" SELECT * FROM users "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อจริง: $ line นามสกุล: $ line อายุ: $ line
";) ก้อง"

ชื่อที่ขึ้นต้นด้วย S:
"; $ result = mysqli_query ($ link," SELECT * FROM users WHERE name LIKE "S%" "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อ: $ line นามสกุล: $ line . อายุ : $ line.
";) mysqli_close ($ ลิงก์);

นี่คือตัวอย่างแบบสอบถามที่จะส่งคืนระเบียนทั้งหมดที่มีนามสกุลลงท้ายด้วยตัวอักษร s

เลือก * จากผู้ใช้โดยที่ชื่อ LIKE "% s"

ตรงกับเงื่อนไข - IN

แบบสอบถามนี้โดยใช้คำสั่ง IN จะส่งคืนเฉพาะแถวที่ตรงกับเงื่อนไขอย่างเคร่งครัด

ตัวอย่างเช่น เราสนใจผู้ที่มีอายุ 21, 26 และ 33 ปี

เลือก * จากผู้ใช้ที่อายุ (21,26,33)

ทดสอบคำขอ:

$ link = mysqli_connect ("localhost", "root", ""); ถ้า (! $ link) ตาย ("ข้อผิดพลาด"); mysqli_select_db ("ผู้ทดสอบ"); echo "เนื้อหาของตาราง:
"; $ result = mysqli_query ($ link" SELECT * FROM users "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อจริง: $ line นามสกุล: $ line อายุ: $ line
";) ก้อง"

ผู้ที่มีอายุที่กำหนด (21, 26, 33):
"; $ result = mysqli_query ($ link," SELECT * FROM users WHERE age IN (21, 26, 33) "); while ($ line = mysqli_fetch_row ($ result)) (echo" ชื่อ: $ line นามสกุล : $ line. อายุ: $ line.
";) mysqli_close ($ ลิงก์);

ค่าสูงสุดและต่ำสุดในคอลัมน์

เลือกค่าอายุสูงสุดในตารางผู้ใช้

SELECT สูงสุด (อายุ) จากผู้ใช้

คิวรีต่อไปนี้จะเลือกข้อมูลจากตารางผู้ใช้โดยใช้ฟิลด์ชื่อและอายุ โดยที่อายุคือค่าต่ำสุด

เลือกชื่อ ขั้นต่ำ (อายุ) จากผู้ใช้

กำลังอัปเดตบันทึก - UPDATE

กำหนดให้ Max Lopes อายุ 15 ปี สิ่งนี้ทำได้ด้วยแบบสอบถาม MySQL:

UPDATE ผู้ใช้ SET age = "15" WHERE name = "Max" AND นามสกุล = "Lopes"

สังเกตคำสั่ง AND ใหม่ (และ - ในภาษาอังกฤษหมายถึง "และ") ในแบบสอบถาม หากเราไม่ระบุนามสกุล อายุ 15 ปี จะถูกกำหนดเป็น Max ทั้งหมดในตาราง

หนึ่งคิวรีสามารถอัปเดตสองฟิลด์ขึ้นไปในหนึ่งบรรทัด สิ่งนี้ทำได้ดังนี้:

อัปเดตผู้ใช้ SET age = "18", นามสกุล = "Coocker" โดยที่ id = "3"

ตารางของเราไม่มีฟิลด์ id ดังนั้น แบบสอบถามนี้จะไม่ทำงาน แต่เราจะได้เรียนรู้ฟิลด์นี้ที่มีหมายเลขบรรทัดที่ไม่ซ้ำกันอย่างแน่นอน

ลบบันทึก - DELETE

แบบสอบถามฐานข้อมูล MySQL เพื่อลบบันทึก:

ลบจากผู้ใช้โดยที่ id = "10"

อีกครั้งไม่มีฟิลด์ id ในตารางของเรา แต่เราสามารถลบคนที่อายุต่ำกว่า 18 ปีออกจากมันได้

ลบจากผู้ใช้ที่อายุ< "18"

วางตาราง

แบบสอบถามฐานข้อมูล MySQL ที่ลบตารางผู้ใช้ทั้งหมด:

ผู้ใช้ DROP Table

การวางคอลัมน์ - ALTER TABLE ... DROP ...

บางครั้ง คุณอาจต้องลบคอลัมน์ออกจากตาราง ตัวอย่างเช่น ลบคอลัมน์อายุออกจากผู้ใช้:

แก้ไขผู้ใช้ตาราง DROP อายุ

แบบสอบถาม MySQL นี้ลบคอลัมน์อย่างถาวรและไม่สามารถเพิกถอนได้

เพิ่มคอลัมน์ - ALTER TABLE ... ADD ...

บางครั้ง คุณอาจต้องการเพิ่มคอลัมน์ลงในตารางที่มีอยู่ ตัวอย่างเช่น เพิ่มคอลัมน์อายุลงในตารางผู้ใช้อีกครั้ง:

แก้ไขผู้ใช้ตาราง เพิ่มอายุ TINYINT ไม่ได้ลงนาม

เปลี่ยนชื่อคอลัมน์ - ALTER TABLE ... CHANGE ...

บางครั้ง คุณอาจต้องเปลี่ยนชื่อคอลัมน์ เช่น เปลี่ยนชื่อคอลัมน์อายุเป็น vozrast เราทำเช่นนี้:

ALTER TABLE users CHANGE age vozrast TINYINT UNSIGNED . เปลี่ยนแปลงผู้ใช้ตาราง

แบบสอบถาม MySQL นี้เปลี่ยนชื่อคอลัมน์อายุเป็น vozrast ด้วยประเภทข้อมูล TINYINT UNSIGNED

การเปลี่ยนชื่อตาราง - RENAME TABLE ... TO ...

บางครั้งอาจจำเป็นต้องเปลี่ยนชื่อตาราง:

เปลี่ยนชื่อผู้ใช้ตารางเป็นประชาชน

การวางฐานข้อมูล - DROP DATABASE

แบบสอบถามนี้สามารถวางฐานข้อมูลด้วยผู้ทดสอบชื่อ:

DROP DATABASE เครื่องทดสอบ

การสร้างฐานข้อมูล - CREATE DATABASE

แบบสอบถามนี้สร้างฐานข้อมูลชื่อผู้ทดสอบ:

สร้างผู้ทดสอบฐานข้อมูล

คำขอนี้ใช้ได้กับฉันในเดนเวอร์ แต่สำหรับโฮสต์ อาจใช้ไม่ได้หากผู้ใช้ฐานข้อมูลไม่ได้รับอนุญาตให้ดำเนินการลบ

ผลลัพธ์

ดังนั้น ในส่วนนี้ เราได้ทำความคุ้นเคยกับการสืบค้น MySQL คำขอจำนวนมากที่เราได้พิจารณาแล้วมักไม่ค่อยมีประโยชน์สำหรับเราในกระบวนการทำงาน แต่คุณจำเป็นต้องทราบ เนื่องจากคำขอเหล่านี้จะมีประโยชน์ในกระบวนการพัฒนาสคริปต์อย่างแน่นอน

คำขอบางรายการมักจะสร้างจาก phpMyAdmin เท่านั้น (เช่น การสร้างและการลบฐานข้อมูล)

ในการทำงานของไซต์ คุณมักจะต้องเพิ่มระเบียนลงในตาราง แก้ไขระเบียน หรือลบระเบียนออกจากตาราง

ขั้นตอนต่อไปคือการสำรวจประเภทข้อมูล MySQL

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

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

  1. กำลังเชื่อมต่อกับฐานข้อมูล MySQL ที่ติดตั้ง
  2. การใช้คำสั่ง USE กับฐานข้อมูล MySQL ที่ต้องการ
  3. การส่ง SQL ไปยังฐานข้อมูล
  4. ได้ผลลัพธ์
  5. การประมวลผลผลลัพธ์

การดำเนินการ 3, 4 และ 5 จะแตกต่างกันไปขึ้นอยู่กับลักษณะของงานที่กำลังดำเนินการ สคริปต์ที่สร้างตารางแตกต่างจากสคริปต์ที่ค้นหาตารางที่มีอยู่เล็กน้อย แต่สองขั้นตอนแรก—เชื่อมต่อกับ MySQL และใช้ฐานข้อมูลที่ถูกต้อง—จะเหมือนกันเสมอ โดยไม่คำนึงถึงจุดประสงค์ของสคริปต์

กำลังเชื่อมต่อกับฐานข้อมูล MySQL

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

ในการเชื่อมต่อกับฐานข้อมูล เราจะใช้ PDO - PHP Data Objects เมื่อใช้งานคุณไม่ต้องกลัวว่ามันเป็นไปได้ด้วยพารามิเตอร์ที่เตรียมไว้ แต่จะเพิ่มเติมในภายหลัง

มันเป็นสิ่งสำคัญ! หากคุณพบบทเรียนบนอินเทอร์เน็ตที่จะใช้ mysqli_connect หรือ mysql_connect - อย่าลังเลที่จะปิดตามที่เขียนไว้เมื่อ 10 ปีที่แล้ว

ในการสร้างการเชื่อมต่อ คุณต้องสร้างวัตถุใหม่ของคลาส PDO ในฐานะอาร์กิวเมนต์ของคอนสตรัคเตอร์ คุณต้องส่ง DSN - นี่คือสตริงที่ระบุไดรเวอร์ (ในกรณีของเราคือ mysql) ชื่อโฮสต์และฐานข้อมูล อาร์กิวเมนต์ที่สองคือชื่อผู้ใช้ (ในกรณีของเราคือ root) ที่สามคือรหัสผ่าน (ในกรณีของเราว่างเปล่า)

ก่อนบทเรียน ฉันได้สร้างฐานข้อมูลผู้ใช้ และในนั้นจะมีแผ่นข้อมูลที่มีโครงสร้างดังต่อไปนี้:

สร้างตาราง `data' (` id` int (11) ไม่ใช่ NULL AUTO_INCREMENT, `name' varchar (32) ค่าเริ่มต้น NULL, ` ปี 'ถ่าน (4) ค่าเริ่มต้น NULL, คีย์หลัก (id)) เครื่องยนต์ = InnoDB ค่าเริ่มต้น CHARSET = utf8 ; $ dbh = ใหม่ \ PDO ("mysql: host = localhost; dbname = users;", "root", "");

ขั้นตอนแรกหลังจากเชื่อมต่อคือการตั้งค่าการเข้ารหัส:

$ dbh-> exec ("ตั้งค่าชื่อ UTF8");

หลังจากนั้นเราสามารถดำเนินการตามคำขอได้ ดูเหมือนว่านี้:

$ stm = $ dbh-> prepare ("INSERT INTO data (` name`, `year`) VALUES (: ชื่อ,: ปี)"); $ stm-> bindValue ("ชื่อ", "ชื่อ"); $ stm-> bindValue ("ปี", "1703"); $ stm-> ดำเนินการ ();

ขั้นแรก เราสร้างคำขอที่เตรียมไว้ - ยังไม่ได้ดำเนินการ โปรดทราบว่าแทนที่จะระบุค่า เราระบุ: ชื่อและ: ปี - นี่คือพารามิเตอร์ที่จะแทนที่ค่าที่ระบุในสองบรรทัดถัดไป ในตอนท้ายเราเรียก execute () - อันที่จริงให้ดำเนินการตามคำขอที่เป็นผลลัพธ์

เรียกใช้สคริปต์นี้และดูสิ่งที่ปรากฏในฐานข้อมูล

มาอัปเดตสคริปต์กันอีกสองสามครั้งและดูฐานข้อมูลอีกครั้ง

การดึงข้อมูลจากฐานข้อมูลโดยใช้ PHP

มาอ่านข้อมูลที่เราเขียนกัน แบบแผนเหมือนกัน มีเพียงเราเตรียมแบบสอบถาม SELECT

$ stm = $ dbh-> เตรียม ("เลือก * จากข้อมูล" "); $ stm-> ดำเนินการ ();

คำขอได้รับการตอบสนองแล้ว แต่นั่นไม่ใช่ทั้งหมด ตอนนี้คุณต้องได้รับผล สิ่งนี้ทำได้ดังนี้:

$ allUsers = $ stm-> fetchAll (); var_dump ($ ผู้ใช้ทั้งหมด);

เป็นผลให้เราได้รับอาร์เรย์ของระเบียนเหล่านี้:

มาแสดงให้สวยงามยิ่งขึ้น เพิ่ม HTML บางส่วน

$ stm = $ dbh-> เตรียม ("เลือก * จากข้อมูล" "); $ stm-> ดำเนินการ (); $ allUsers = $ stm-> fetchAll (); ?>

NSชื่อปี

นั่นเป็นเรื่องที่แตกต่างอย่างสิ้นเชิง!

หากคุณต้องการเพิ่มพารามิเตอร์ในแบบสอบถาม SELECT ให้ทำในลักษณะเดียวกัน:

$ stm = $ dbh-> เตรียม ("เลือก * จากข้อมูล" โดยที่ id =: id "); $ stm-> bindValue ("id", 1); $ stm-> ดำเนินการ (); $ ผู้ใช้ = $ stm-> fetchAll (); var_dump ($ ผู้ใช้);

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

ในบทความนี้ เราจะใช้ตัวอย่างเพื่อวิเคราะห์จุดสำคัญดังกล่าวในการทำงานกับฐานข้อมูล MySQL (DB) เช่น การดึงข้อมูลจากฐานข้อมูล การเขียนไปยังฐานข้อมูล การอัพเดตข้อมูลในฐานข้อมูล ตลอดจนการลบออกจากฐานข้อมูล ทั้งหมดนี้จะทำโดยใช้คำสั่งสี่ - SELECT, INSERT, UPDATE และ DELETE ซึ่งจะกล่าวถึงในบทความนี้

ดังนั้น หากคุณต้องการรับฟิลด์ทั้งหมดจากฐานข้อมูล ให้ใช้รหัสต่อไปนี้

$ ผล = mysql_query ("เลือก * จาก first_table", $ db);

เครื่องหมายดอกจันหมายความว่าคุณต้องดึงฟิลด์ทั้งหมดออกจากตาราง

หากคุณต้องการดึงเฉพาะบางฟิลด์ เช่น ชื่อและนามสกุล

$ ผล = mysql_query ("เลือกชื่อ, นามสกุลจาก first_table", $ db);

ชื่อ, นามสกุล_ - ฟิลด์ที่มีชื่อและนามสกุลของผู้ใช้

หากคุณต้องการรับข้อมูลที่แน่นอน เช่น นามสกุลของผู้ใช้ทั้งหมดในฐานข้อมูลที่มีชื่อเฉพาะ (ชื่อจะถูกป้อนลงในตัวแปรชื่อ $)

ชื่อ = '$ ชื่อ' - ฟิลด์ชื่อเท่ากับตัวแปรชื่อ $

นอกจากเงื่อนไขเดียวแล้ว เรายังสามารถแสดงรายการได้หลายรายการ เช่น คุณต้องรับตัวระบุผู้ใช้ทั้งหมดที่มีชื่อและนามสกุลเฉพาะ (ชื่อและนามสกุลจะถูกป้อนลงในตัวแปร $ name และ $ last_name ตามลำดับ) . สำหรับสิ่งนี้เราสามารถใช้รหัสต่อไปนี้

หากเราต้องการรับบันทึกที่ตรงตามเงื่อนไขข้อใดข้อหนึ่ง ตัวอย่างเช่น เพื่อรับตัวระบุของผู้ใช้ทั้งหมดที่มีชื่อหรือนามสกุลตรงกับที่ระบุไว้ในเงื่อนไข

หากคุณต้องการจัดเรียงผลลัพธ์ตามพารามิเตอร์บางตัว เช่น ตามชื่อ

$ ผล = mysql_query ("เลือก * จาก first_table ORDER BY ชื่อ", $ db);

เรียงตามชื่อ - เรียงตามชื่อ

หากคุณต้องการเรียงลำดับย้อนกลับ

$ ผล = mysql_query ("เลือก * จาก first_table เรียงตามชื่อ DESC", $ db);

DESC - ในลำดับที่กลับกัน

หากคุณต้องการดึงเฉพาะบางฟิลด์จากฐานข้อมูล ตัวอย่างเช่น คุณต้องดึงข้อมูลห้าฟิลด์แรกออก

$ result = mysql_query ("เลือก * จาก first_table ORDER BY id LIMIT 5", $ db);

LIMIT 5 - ดึงเฉพาะผลลัพธ์ห้ารายการแรกจากฐานข้อมูล

นี่เป็นตัวอย่างเล็กๆ น้อยๆ ของตัวอย่างจากฐานข้อมูล ตอนนี้เรามาดูวิธีการแปลงผลลัพธ์เป็นอาร์เรย์เพื่อใช้งานต่อไป เช่น แสดงผลบนหน้าจอ สำหรับสิ่งนี้ PHP มีความพิเศษ mysql_fetch_array ().

เราสามารถใส่ผลลัพธ์ของการเรียกใช้ฟังก์ชันลงในตัวแปรได้ เช่น ตัวแปร $ myrow ซึ่งจะถูกเก็บไว้ในตัวมันเอง เป็นพารามิเตอร์ฟังก์ชัน mysql_fetch_array ()ผลลัพธ์ของการเรียกใช้ฟังก์ชันจะถูกส่งผ่าน mysql_query ()... มันจะมีลักษณะเช่นนี้ทั้งหมด

$ myrow = mysql_fetch_array ($ ผล);

ตอนนี้เราสามารถเข้าถึงองค์ประกอบของอาร์เรย์ที่เชื่อมโยง $ myrow ได้แล้ว ยกตัวอย่างให้ดูที่รหัสที่แสดงชื่อผู้ใช้ที่มี id = 1 ฐานข้อมูล db_first จากบทความก่อนหน้านี้จะถูกใช้เป็นฐานข้อมูล

/ * เชื่อมต่อกับฐานข้อมูล * / $ db = mysql_connect ("เซิร์ฟเวอร์ MySQL", "ผู้ใช้ฐานข้อมูล", "รหัสผ่านสำหรับการเข้าถึงฐานข้อมูล"); mysql_select_db ("db_name", $ db); / * เราทำการสืบค้นไปยังฐานข้อมูล * / $ result = mysql_query ("เลือกชื่อจาก first_table WHERE id =" $ id "", $ db); / * แปลงผลลัพธ์เป็นอาร์เรย์ * / $ myrow = mysql_fetch_array ($ ผล); / * พิมพ์ผลลัพธ์ไปที่หน้าจอ * / echo $ myrow ["name"];

อย่างที่คุณเห็น ทุกอย่างเรียบง่ายและตรงไปตรงมามาก

ต่อไปเราจะไปที่คำสั่ง INSERT ถัดไป ซึ่งมีหน้าที่ในการเพิ่มข้อมูลลงในฐานข้อมูล

การเพิ่มข้อมูลลงในฐานข้อมูล คำสั่ง INSERT

คำสั่ง INSERT ใช้เพื่อเพิ่มข้อมูลลงในฐานข้อมูล รหัสที่รับผิดชอบในการเพิ่มมีรูปแบบดังนี้

$ result = mysql_query ("INSERT INTO ตาราง (ฟิลด์ 1, ฟิลด์ 2, ฟิลด์ N) ค่า (" ค่า 1 "," ค่า 2 "," ค่า N ")");

ตัวอย่างเช่น เราต้องเพิ่มชื่อและนามสกุลของผู้ใช้ใหม่ใน first_table คุณสามารถใช้รหัสต่อไปนี้สำหรับสิ่งนี้

$ result = mysql_query ("INSERT INTO first_table (ชื่อ, Last_name) VALUES (" $ ชื่อ "," $ last_name ")");

โดยที่ $ name และ $ last_name เป็นตัวแปรที่มีชื่อและนามสกุลของผู้ใช้ใหม่

คุณสามารถใช้เพื่อตรวจสอบผลลัพธ์

$ result = mysql_query ("INSERT INTO first_table (ชื่อ, Last_name) VALUES (" $ ชื่อ "," $ last_name ")"); if ($ result == "true") (echo "บันทึกเรียบร้อยแล้ว!";) อื่น (echo "ไม่ได้เพิ่มบันทึก!";)

กล่าวอีกนัยหนึ่ง หากตัวแปรผลลัพธ์ $ เป็นจริง จะมีข้อความแสดงขึ้นว่าได้เพิ่มบันทึกแล้ว มิฉะนั้นจะแสดงว่ายังไม่ได้เพิ่มบันทึกลงในฐานข้อมูล

กำลังปรับปรุงข้อมูลในฐานข้อมูล อัพเดทคำสั่ง

คำสั่ง UPDATE ใช้เพื่ออัพเดตข้อมูลที่มีอยู่ในฐานข้อมูล ไวยากรณ์สำหรับฟังก์ชัน mysql_query ในกรณีนี้มีดังนี้

ทีนี้มาดูตัวอย่างกัน สมมติว่าเราต้องเปลี่ยนชื่อและนามสกุลสำหรับผู้ใช้ด้วยตัวระบุ $ id ในตาราง db_name คุณสามารถใช้รหัสต่อไปนี้สำหรับสิ่งนี้

ตอนนี้ ไปที่ส่วนสุดท้ายของบทความและดูคำสั่ง DELETE สุดท้าย ซึ่งมีหน้าที่ในการลบข้อมูลออกจากฐานข้อมูล

การลบข้อมูลออกจากฐานข้อมูล คำสั่ง DELETE

คำสั่ง DELETE ใช้เพื่อลบฟิลด์ออกจากฐานข้อมูล ไวยากรณ์สำหรับฟังก์ชัน mysql_query () ในกรณีนี้มีดังนี้

ตามปกติ เรามาดูตัวอย่างกัน สมมติว่าเราต้องลบผู้ใช้ที่มี $ id ออกจากตาราง db_name คุณสามารถใช้รหัสต่อไปนี้สำหรับสิ่งนี้

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

นั่นคือทั้งหมดที่ ขอให้โชคดีและประสบความสำเร็จในการเรียนรู้ PHP และ MySQL