ความหมายและการใช้งานฟังก์ชัน mysqli_store_result()

 

          ฟังก์ชัน mysqli_store_result() เป็นฟังก์ชันที่ใช้ในการโอนชุดผลลัพธ์จากการค้นหาครั้งล่าสุด

 

ลักษณะในการใช้งานมี 2 สไตล์ ดังนี้

  1. สไตล์ OO: Object oriented style(โอโอ: อ็อปเจ็กออเล็นเต็ด สไตล์) 
    mysqli_result mysqli::store_result ([ int $option ] )​
  2. สไตล์กระบวนการ (Procedural style(โพรเซโดะเรา สไตล์)) 
    mysqli_result mysqli_store_result ( mysqli $link [, int $option ] )​

 

โดยกำหนดให้

                   link แทน ตัวระบุการเชื่อมโยงที่ส่งกลับโดย mysqli_connect () หรือ mysqli_init()

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

 

ตัวอย่าง สไตล์ OO: Object oriented style(โอโอ: อ็อปเจ็กออเล็นเต็ด สไตล์) 

<?php
$mysqli = new mysqli("localhost", "root", "", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("ไม่สามารถเชื่อมต่อฐานข้อมูลได้: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT user();";
$query .= "SELECT first_Name FROM user ORDER BY id LIMIT 2, 1";

/* execute multi query */
if ($mysqli->multi_query($query)) {
    do {
        /* store first result set */
        if ($result = $mysqli->store_result()) {
            while ($row = $result->fetch_row()) {
                printf("%s\n", $row[0]);
            }
            $result->free();
        }
        /* print divider */
        if ($mysqli->more_results()) {
            printf("-*-*-*-*-*-*-*-*-\n");
        }
    } while ($mysqli->next_result());
}

/* close connection */
$mysqli->close();
?>

 

ผลลัพธ์

ภาพแสดงผลลัพธ์ของการใช้งานฟังก์ชัน  mysqli_store_result ในสไตล์ oo:Object oriented style
ภาพแสดงผลลัพธ์ของการใช้งานฟังก์ชัน mysqli_store_result ในสไตล์ oo:Object oriented style

 

ตัวอย่างการใช้งานฟังก์ชัน mysqli_store_result() ในสไตล์กระบวนการ (Procedural style(โพรเซโดะเรา สไตล์)) 

 

<?php
$link = mysqli_connect("localhost", "root", "", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("ไม่สามารถเชื่อมต่อฐานข้อมูลได้: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT user();";
$query .= "SELECT first_Name FROM user ORDER BY id LIMIT 3, 1";

/* execute multi query */
if (mysqli_multi_query($link, $query)) {
    do {
        /* store first result set */
        if ($result = mysqli_store_result($link)) {
            while ($row = mysqli_fetch_row($result)) {
                printf("%s\n", $row[0]);
            }
            mysqli_free_result($result);
        }
        /* print divider */
        if (mysqli_more_results($link)) {
            printf("-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-\n");
        }
    } while (mysqli_next_result($link));
}

/* close connection */
mysqli_close($link);
?>

ผลลัพธ์

ภาพแสดงการใช้งานฟังก์ชัน mysqli_store_result() ในสไตล์กระบวนการ (Procedural style)
ภาพแสดงการใช้งานฟังก์ชัน mysqli_store_result() ในสไตล์กระบวนการ (Procedural style)

 

ข้อมูลอ้างอิง: php.net

                  : dev.mysql.com

 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : ฟังก์ชัน PHP กับ MySQL

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
M181 - อธิราช กุลเมือง
โดย athirach.offcial จ 25 มี.ค. 2024 10:15 am บอร์ด Dev Teams
0
8
จ 25 มี.ค. 2024 10:15 am โดย athirach.offcial View Topic M181 - อธิราช กุลเมือง
การสำรองข้อมูล Backup Joomla! ทั้งเว็บ ด้วย MJClone
โดย mindphp อ 24 มี.ค. 2024 1:33 am บอร์ด MindPHP News & Feedback
0
86
อ 24 มี.ค. 2024 1:33 am โดย mindphp View Topic การสำรองข้อมูล Backup Joomla! ทั้งเว็บ ด้วย MJClone
Start Directadmin แบบเมนนวล
โดย mindphp ศ 22 มี.ค. 2024 5:35 am บอร์ด Linux - Web Server
1
107
ศ 22 มี.ค. 2024 5:43 am โดย mindphp View Topic Start Directadmin แบบเมนนวล
คำสั่ง Command Line สำรองเว็บไซต์ บน Directadmin Backup Website ขนาดใหญ่
โดย mindphp ศ 22 มี.ค. 2024 5:31 am บอร์ด Linux - Web Server
1
153
ศ 22 มี.ค. 2024 11:52 pm โดย mindphp View Topic คำสั่ง Command Line สำรองเว็บไซต์ บน Directadmin Backup Website ขนาดใหญ่
Vmware Exsi 5 เพิ่ม HDD เป็น data store ไม่ได้เจอ Error Call "HostDatastoreSystem.QueryVmfsDatastoreCreateOptions" for
โดย mindphp พฤ 21 มี.ค. 2024 6:53 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
245
อ 26 มี.ค. 2024 10:10 am โดย noncup302 View Topic Vmware Exsi 5 เพิ่ม HDD เป็น data store ไม่ได้เจอ Error  Call "HostDatastoreSystem.QueryVmfsDatastoreCreateOptions" for
ถ้าใช้เมนบอร์ดที่ใส่ cpu ได้สองตัว และ cpu รันปกติแต่ vmwere
โดย Anonymous พ 20 มี.ค. 2024 3:09 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
135
พฤ 21 มี.ค. 2024 6:48 am โดย mindphp View Topic ถ้าใช้เมนบอร์ดที่ใส่ cpu ได้สองตัว และ cpu รันปกติแต่ vmwere
วิธีตั้งค่าการเก็บ Logs Error ของ OpenLiteSpeed ใช้ได้กับ Apache, Nginx
โดย mindphp พ 20 มี.ค. 2024 2:27 pm บอร์ด Linux - Web Server
0
126
พ 20 มี.ค. 2024 2:27 pm โดย mindphp View Topic วิธีตั้งค่าการเก็บ Logs Error ของ OpenLiteSpeed ใช้ได้กับ Apache, Nginx
วิธีแก้ปัญหา ลืมรหัสผ่าน ไม่รู้รหัสผ่าน เข้า WebAdmin Console ของ OpenLiteSpeed ไม่ได้
โดย mindphp พ 20 มี.ค. 2024 2:16 pm บอร์ด Linux - Web Server
0
99
พ 20 มี.ค. 2024 2:16 pm โดย mindphp View Topic วิธีแก้ปัญหา ลืมรหัสผ่าน ไม่รู้รหัสผ่าน เข้า WebAdmin Console ของ OpenLiteSpeed ไม่ได้