อ่านข้อมูลจากฐานข้อมูล MySQL
คำสั่ง SELECT ใช้ในการอ่านข้อมูลจากตารางข้อมูล:
เลือก column_name จาก table_name
เราสามารถใช้เครื่องหมาย * เพื่ออ่านทุกช่องในตารางข้อมูลได้:
เลือก * จาก table_name
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ SQL โปรดไปที่บทช่วยสอน SQL ของเรา
การใช้MySQLi
ในตัวอย่างต่อไปนี้ เราอ่านข้อมูลของคอลัมน์ id ชื่อ และนามสกุลจากตาราง MyGuests ของฐานข้อมูล myDB และแสดงบนเพจ:
ตัวอย่าง (MySQLi - เชิงวัตถุ)
<?php $servername = " localhost " ; $username = " ชื่อ ผู้ใช้ " ; $password = " รหัสผ่าน " ; $ dbname = " myDB " ; $conn = ใหม่ mysqli ( $servername , $username , $password , $dbname ) ; // ตรวจสอบการเชื่อมต่อ ถ้า ( $conn -> Connect_error ) - die ( " การเชื่อมต่อล้มเหลว: " . $ conn -> Connect_error ) ; $sql = " เลือก id, ชื่อ
, นามสกุลจาก MyGuests " ; $result = $conn -> แบบสอบถาม ( $sql ) ; ( $ผลลัพธ์ -> num_rows > 0 ) - // ข้อมูลเอาท์พุต ในขณะที่ ( $row = $result -> fetch_assoc ( ) ) - เสียงสะท้อน " id: " . $row [ " id " ] " - ชื่อ: " . $ row [ " ชื่อ จริง " ] " . $row [ " นามสกุล " ] . " <br> " ; } - อื่น - เสียงสะท้อน " 0 ผลลัพธ์ " ; $conn - > ปิด ( ) ; โค้ดข้างต้นได้รับการวิเคราะห์ดังนี้:
ขั้นแรก เราตั้งค่าคำสั่ง SQL เพื่ออ่าน id, ชื่อและนามสกุลจากตารางข้อมูล MyGuests สามฟิลด์ จากนั้นเราใช้คำสั่ง SQL ที่แก้ไขแล้วเพื่อดึงชุดผลลัพธ์จากฐานข้อมูลและกำหนดให้กับตัวแปร $result ที่คัดลอกไว้
ฟังก์ชัน num_rows() กำหนดข้อมูลที่ส่งคืน
หากมีการส่งคืนข้อมูลหลายชิ้น ฟังก์ชัน fetch_assoc() จะใส่ชุดที่รวมกันลงในอาเรย์ที่เชื่อมโยงและส่งออกเป็นลูป ในขณะที่() วนรอบชุดผลลัพธ์และส่งออกค่าฟิลด์สามค่า ได้แก่ id ชื่อ และนามสกุล
ตัวอย่างต่อไปนี้ใช้แนวทางที่มุ่งเน้นกระบวนการของ MySQLi และผลที่ได้จะคล้ายกับโค้ดด้านบน:
ตัวอย่าง (MySQLi - เน้นขั้นตอน)
<?php $servername = " localhost " ; $username = " ชื่อ ผู้ใช้ " ; $password = " รหัสผ่าน " ; $ dbname = " myDB " ; $conn = mysqli_connect ( $servername , $username , $password , $dbname ) ; // ตรวจสอบการเชื่อมต่อ ถ้า ( ! $conn ) - die ( " การ
เชื่อม ต่อ
ล้ม เหลว: " . mysqli_connect_error ( ) ; $sql = " เลือก id
, ชื่อ, นามสกุลจาก MyGuests " ; $result = mysqli_query ( $conn , $sql ) ; ( mysqli_num_rows ( $ผลลัพธ์ ) > 0 ) - // ข้อมูลเอาท์พุต ในขณะที่ ( $row = mysqli_fetch_assoc ( $result ) ) - เสียงสะท้อน " id: " . $row [ " id " ] " - ชื่อ: " . $ row [ " ชื่อ จริง " ] " . $row [ " นามสกุล " ] . " <br> " ; } - อื่น - เสียงสะท้อน " 0 ผลลัพธ์ " ; mysqli_close ( $ conn ) ; การใช้ PDO (+ การประมวลผลล่วงหน้า)
ตัวอย่างต่อไปนี้ใช้คำสั่งที่เตรียมไว้
เลือกฟิลด์ ID ชื่อ และนามสกุลจากตาราง MyGuests และวางไว้ในตาราง HTML:
ตัวอย่าง (PDO)
<?php เสียงสะท้อน " <table style='
border : solid 1px black;'> " ; " <tr><th>รหัส</th><th>ชื่อ</th><th>นามสกุล</th> </tr> " ; แถวตาราง ขยาย RecursiveIteratorIterator - การทำงาน __สร้าง ( $มัน ) - parent :: __construct ( $ it , ตนเอง :: LEAVES_ONLY ) ; การทำงาน ปัจจุบัน ( ) - กลับ " <td style='width:150px;border:1px solid black ; ' > " . พา เร น ต์ :: ปัจจุบัน ( ) การทำงาน เริ่มต้นเด็กๆ ( ) - เสียงสะท้อน " <tr> " ; } การทำงาน สิ้นสุดเด็กๆ ( ) - เสียงสะท้อน " </tr> " . " n " } - $servername = " localhost " ; $username = " ชื่อ ผู้ใช้ " ; $password = " รหัสผ่าน " ; $dbname = " myDBPDO " ; - $conn = ใหม่ PDO ( " mysql : host = $ servername ; dbname = $ dbname " , $ username , $ password ) ; เลือก id, ชื่อ, นามสกุล จาก MyGuests " ) ; $stmt -> ดำเนินการ ( ) ; // ตั้งค่าชุดผลลัพธ์เป็นอาเรย์แบบเชื่อมโยง $ result = $ stmt - > setFetchMode ( PDO :: FETCH_ASSOC ) ; แถวตาราง ( ใหม่ RecursiveArrayIterator ( $stmt -> fetchAll ( ) ) ) เช่น $k => $v ) - เสียงสะท้อน $ วี ; - จับ ( PDOException $อี ) - เสียงสะท้อน " ข้อ ผิดพลาด: " . $e -> getMessage ( ) ; $ conn = โมฆะ ; " </table> " ? >