MySQLi - เลือกแบบสอบถาม

SQL SELECTคำสั่งใช้เพื่อดึงข้อมูลจากฐานข้อมูล MySQLi คุณสามารถใช้คำสั่งนี้ได้ที่ mysql> prompt เช่นเดียวกับในสคริปต์ใด ๆ เช่น PHP

ไวยากรณ์

นี่คือไวยากรณ์ SQL ทั่วไปของคำสั่ง SELECT เพื่อดึงข้อมูลจากตาราง MySQLi -

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • คุณสามารถใช้ตารางอย่างน้อยหนึ่งตารางที่คั่นด้วยลูกน้ำเพื่อรวมเงื่อนไขต่างๆโดยใช้คำสั่ง WHERE แต่คำสั่ง WHERE เป็นส่วนเสริมของคำสั่ง SELECT

  • คุณสามารถดึงฟิลด์ตั้งแต่หนึ่งฟิลด์ขึ้นไปในคำสั่ง SELECT เดียว

  • คุณสามารถระบุดาว (*) แทนช่องได้ ในกรณีนี้ SELECT จะส่งคืนฟิลด์ทั้งหมด

  • คุณสามารถระบุเงื่อนไขใด ๆ โดยใช้คำสั่ง WHERE

  • คุณสามารถระบุออฟเซ็ตโดยใช้ OFFSETจากจุดที่ SELECT จะเริ่มส่งคืนระเบียน โดยค่าชดเชยเริ่มต้นคือศูนย์

  • คุณสามารถ จำกัด จำนวนผลตอบแทนโดยใช้ LIMIT แอตทริบิวต์

การดึงข้อมูลจากพรอมต์คำสั่ง -

สิ่งนี้จะใช้คำสั่ง SQL SELECT เพื่อดึงข้อมูลจาก MySQLi table tutorials_tbl

ตัวอย่าง

ตัวอย่างต่อไปนี้จะส่งคืนระเบียนทั้งหมดจาก tutorials_inf โต๊ะ -

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf;
+----+------+
| id | name |
+----+------+
|  1 | sai  |
|  2 | kit  |
|  3 | ram  |
+----+------+
3 rows in set (0.00 sec)

mysql>

การดึงข้อมูลโดยใช้สคริปต์ PHP

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

ด้านล่างนี้เป็นตัวอย่างง่ายๆในการดึงข้อมูลจากระเบียน tutorials_inf ตาราง.

ตัวอย่าง

ลองใช้ตัวอย่างต่อไปนี้เพื่อแสดงระเบียนทั้งหมดจากตาราง tutorials_inf

<html>
   <head>
      <title>Selecting Table in MySQLi Server</title>
   </head>

   <body>
      <?php
         $dbhost = 'localhost:3306';
         $dbuser = 'root';
         $dbpass = '';
         $dbname = 'TUTORIALS';
         $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
         if(! $conn ) {
            die('Could not connect: ' . mysqli_error());
         }
         echo 'Connected successfully<br>';
         $sql = 'SELECT name FROM tutorials_inf';
         $result = mysqli_query($conn, $sql);

         if (mysqli_num_rows($result) > 0) {
            while($row = mysqli_fetch_assoc($result)) {
               echo "Name: " . $row["name"]. "<br>";
            }
         } else {
            echo "0 results";
         }
         mysqli_close($conn);
      ?>
   </body>
</html>

เนื้อหาของแถวจะถูกกำหนดให้กับตัวแปร $ row และจากนั้นจะพิมพ์ค่าในแถว

NOTE - อย่าลืมใส่วงเล็บปีกกาเมื่อคุณต้องการแทรกค่าอาร์เรย์ลงในสตริงโดยตรง

ผลลัพธ์ตัวอย่างควรเป็นดังนี้ -

Connected successfully
Name: ram
Name: kit
Name: abc