ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

mysqli_multi_query()

ฟังก์ชัน mysqli_multi_query() ใช่ในการรรันคำสั่งหลาย ๆ คำสั่งพร้อมกัน   

เป็นการรันหรือดำเนิกการคำสั่ง sql คำสั่งเดียวหรือหลายคำสั่ง ซึ่งมีการคั่นระหว่างคำสั่งโดยเครื่องหมาย semicolon (;)  และเพื่อให้ได้ชุดผลลัพธ์ของคำสั่งsqlหลังจากรัน นั้นโดยสำหรับผลลัพธ์ของคำสั่งแรกเราสามารถใช้ฟังก์ชัน mysqli_use_result() หรือ  mysqli_store_result()   ส่วนผลลัพธ์ของคำสังต่อมาที่เหลือสามารถประมวลผลโดยใช้ mysqli_more_results() และ mysqli_next_result() ได้ครับ 

รูปแบบ Syntax ดังนี้

mysqli_multi_query ( mysqli $link , string $query ): bool
  • link   ตัวระบุลิงก์ที่ส่งคืนโดย ใช้งานฟังก์ชัน mysqli_connect() หรือ mysqli_init()
  • query  คำสั่ง sql ซึ่งเป็นสตริง

 

 

ตัวอย่างโค้ดการใช้ multi_query ดังนี้

<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$query  = "SELECT CURRENT_USER();";
$query .= "SELECT Name FROM City ORDER BY ID LIMIT 20, 5";

/* 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);
?>

ผลลัพธ์ที่ได้คือ

my_user@localhost
-----------------
Amersfoort
Maastricht
Dordrecht
Leiden
Haarlemmermeer

จากโค้ดข้างต้น เราได้เขียนคำสั่งsql สองคำสั่ง คือ SELECT CURRENT_USER() และ SELECT Name FROM City ORDER BY ID LIMIT 20, 5 ซึ่งเป็น string ที่ต่อกั และมี semicolon คั่น  และใช้ mysqli_multi_query() เพื่อรันคำสั่งsql หล่าวนี้พร้อมกัน  และแน่นอน ผลลัพธ์ที่ได้คือสองชุด ของสองคำสั่งข้างต้น เพื่อprint ผลลัพธ์อาจจะแตกต่างจากเดิมที่ใช้ sql คำสั่งเดียว นั้นคือ ต้องแยกแต่ละผลลัพธ์ออกจากกัน ซึ่งสำหรับผลลัพธ์แรกนั้นใช้ฟังก์ชัน  mysqli_store_result($link) ส่วนการแสดงผลลัพธ์ถัดไปใช้ฟังก์ชัน mysqli_more_results($link) ก็จะได้ผลลัพธ์ตามที่เห็นด้านบนครับ 

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ติดตั้ง Joomla บน ubuntu ไม่ได้ค่ะ
โดย bolue ส 15 ส.ค. 2020 6:35 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
3
13
ส 15 ส.ค. 2020 7:00 pm โดย bolue
การใส่ เมนู ใน editor ของ mindphp ไม่ขึ็นข้อมูล
โดย bolue ส 15 ส.ค. 2020 10:14 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
0
8
ส 15 ส.ค. 2020 10:14 am โดย bolue
Joomla 4 beta 3 มาแล้ว มีอะไรใหม่ บ้างมาดูกัน
โดย mindphp ศ 14 ส.ค. 2020 2:12 pm บอร์ด MindPHP News & Feedback
0
14
ศ 14 ส.ค. 2020 2:12 pm โดย mindphp
การใช้ try-catch จับ Exception ในภาษา Java
โดย nai_cyp พฤ 13 ส.ค. 2020 2:47 pm บอร์ด Share Knowledge
0
15
พฤ 13 ส.ค. 2020 2:47 pm โดย nai_cyp
การใช้ switch ในภาษา Java
โดย nai_cyp พฤ 13 ส.ค. 2020 2:45 pm บอร์ด Share Knowledge
0
11
พฤ 13 ส.ค. 2020 2:45 pm โดย nai_cyp
การใช้คำสั่ง break และ continue ในภาษา Java
โดย nai_cyp พฤ 13 ส.ค. 2020 2:44 pm บอร์ด Share Knowledge
0
9
พฤ 13 ส.ค. 2020 2:44 pm โดย nai_cyp
การใช้ Do-While loop ในภาษา Java
โดย nai_cyp พฤ 13 ส.ค. 2020 1:37 pm บอร์ด Share Knowledge
0
11
พฤ 13 ส.ค. 2020 1:37 pm โดย nai_cyp
การใช้ For-loop ในภาษา Java
โดย nai_cyp พฤ 13 ส.ค. 2020 1:36 pm บอร์ด Share Knowledge
0
11
พฤ 13 ส.ค. 2020 1:36 pm โดย nai_cyp
การใช้ While-loop ในภาษา Java
โดย nai_cyp พฤ 13 ส.ค. 2020 1:33 pm บอร์ด Share Knowledge
0
12
พฤ 13 ส.ค. 2020 1:33 pm โดย nai_cyp
โปรแกรมตัดต่อ VDO ที่ฟรี บน windows
โดย nai_cyp พฤ 13 ส.ค. 2020 11:35 am บอร์ด Share Knowledge
2
30
พฤ 13 ส.ค. 2020 12:36 pm โดย nai_cyp
สร้าง crontab ใน Directadmin แล้ว Error Error Creating Cron Job
โดย mindphp พ 12 ส.ค. 2020 5:08 am บอร์ด Linux - Web Server
1
64
พ 12 ส.ค. 2020 5:17 am โดย mindphp
Undertaker เปิดตัวด้วยเพลงของ Metalica (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:20 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
18
อ 11 ส.ค. 2020 5:20 pm โดย nai_cyp
Green Day ปล่อยเพลงใหม่ช่วง COVID-19 (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:16 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
17
อ 11 ส.ค. 2020 5:16 pm โดย nai_cyp
BLACKPINK โปสเตอร์ทีเซอร์ใหม่? (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:11 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
16
อ 11 ส.ค. 2020 5:11 pm โดย nai_cyp
Liam Gallagher ในช่วง COVID-19 ระบาด (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:10 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
15
อ 11 ส.ค. 2020 5:10 pm โดย nai_cyp
Khalid ในช่วง COVID-19 ระบาด (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:07 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
18
อ 11 ส.ค. 2020 5:07 pm โดย nai_cyp
Green Day ในช่วง COVID-19 ระบาด (ดนตรี)
โดย nai_cyp อ 11 ส.ค. 2020 5:01 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
17
อ 11 ส.ค. 2020 5:01 pm โดย nai_cyp
การคำนวณเงินหากลูกค้าเป็นสมาชิกโดยใช้ If/else ในภาษา Java
โดย nai_cyp จ 10 ส.ค. 2020 7:10 pm บอร์ด Share Knowledge
0
31
จ 10 ส.ค. 2020 7:10 pm โดย nai_cyp
การหาค่า BMI ในภาษา Java
โดย nai_cyp จ 10 ส.ค. 2020 6:45 pm บอร์ด Share Knowledge
0
20
จ 10 ส.ค. 2020 6:45 pm โดย nai_cyp
ขั้นตอนการใช้ SMS Gateway
โดย natthanit.r2538 พ 08 ก.ค. 2020 11:42 am บอร์ด Programming - PHP
1
23
พ 08 ก.ค. 2020 7:10 pm โดย natthanit.r2538