PHP การใช้ PDO FETCH แบบต่าง ๆ
บทความนี้เรามาดูการใช้ FETCH แบบต่าง ๆ ใน PDO กันครับ ซึ่งการ FETCH ข้อมูลแบบต่าง ๆ ก็มีการใช้งานที่ต่างกัน รูปแบบการเขียนที่ต่างกัน และมีอะไรบ้างเรามาดูกันครับDatabase ที่เราจะใช้เป็น MySQL มีชื่อตารางว่า doe_category ซึ่งมีข้อมูลดังนี้

PDO::FETCH_ASSOC
PDO::FETCH_ASSOC: จะรีเทิร์นเป็น array indexed ของชื่อคอลัมน์$result = $PDO->query("select * from doe_category limit 0,5 "); echo "ผลที่ได้จะเป็นแบบนี้"; while($fetchResult = $result->fetch(PDO::FETCH_ASSOC)){ print_r($fetchResult); echo "
";
"; } echo "
Array ( [categorygen] => 1 [category_name] => เบ็ตเตล็ดทั่วไป [category_code] => 9999 [category_order] => 1 )
Array ( [categorygen] => 2 [category_name] => สังคมศาสตร์ [category_code] => 9999 [category_order] => 2 )
Array ( [categorygen] => 3 [category_name] => วิทยาศาสตร์ [category_code] => 9999 [category_order] => 3 )
Array ( [categorygen] => 4 [category_name] => วิทยาศาสตร์ประยุกต์ [category_code] => 9999 [category_order] => 4 )
Array ( [categorygen] => 5 [category_name] => ศิลปและการบันเทิง [category_code] => 9999 [category_order] => 5 )
PDO::FETCH_BOTH
PDO::FETCH_BOTH: จะรีเทิร์นเป็น array indexed ของชื่อคอลัมน์ และเป็น index ของ Array$result = $PDO->query("select * from doe_category limit 0,5 "); echo "ผลลัพธ์ที่ได้จะเป็นแบบนี้"; while($fetchResult = $result->fetch(PDO::FETCH_BOTH)){ print_r($fetchResult); echo "
";
"; } echo "
Array ( [categorygen] => 1 [0] => 1 [category_name] => เบ็ตเตล็ดทั่วไป [1] => เบ็ตเตล็ดทั่วไป [category_code] => 9999 [2] => 9999 [category_order] => 1 [3] => 1 )
Array ( [categorygen] => 2 [0] => 2 [category_name] => สังคมศาสตร์ [1] => สังคมศาสตร์ [category_code] => 9999 [2] => 9999 [category_order] => 2 [3] => 2 )
Array ( [categorygen] => 3 [0] => 3 [category_name] => วิทยาศาสตร์ [1] => วิทยาศาสตร์ [category_code] => 9999 [2] => 9999 [category_order] => 3 [3] => 3 )
Array ( [categorygen] => 4 [0] => 4 [category_name] => วิทยาศาสตร์ประยุกต์ [1] => วิทยาศาสตร์ประยุกต์ [category_code] => 9999 [2] => 9999 [category_order] => 4 [3] => 4 )
Array ( [categorygen] => 5 [0] => 5 [category_name] => ศิลปและการบันเทิง [1] => ศิลปและการบันเทิง [category_code] => 9999 [2] => 9999 [category_order] => 5 [3] => 5 )
PDO::FETCH_LAZY
$result = $PDO->query("select * from doe_category limit 0,5 "); echo "ผลลัพธ์ที่ได้จะเป็นแบบนี้"; while($fetchResult = $result->fetch(PDO::FETCH_LAZY)){ print_r($fetchResult); echo "
";
"; } echo "
PDORow Object ( [queryString] => select * from doe_category limit 0,5 [categorygen] => 1 [category_name] => เบ็ตเตล็ดทั่วไป [category_code] => 9999 [category_order] => 1 )
PDORow Object ( [queryString] => select * from doe_category limit 0,5 [categorygen] => 2 [category_name] => สังคมศาสตร์ [category_code] => 9999 [category_order] => 2 )
PDORow Object ( [queryString] => select * from doe_category limit 0,5 [categorygen] => 3 [category_name] => วิทยาศาสตร์ [category_code] => 9999 [category_order] => 3 )
PDORow Object ( [queryString] => select * from doe_category limit 0,5 [categorygen] => 4 [category_name] => วิทยาศาสตร์ประยุกต์ [category_code] => 9999 [category_order] => 4 )
PDORow Object ( [queryString] => select * from doe_category limit 0,5 [categorygen] => 5 [category_name] => ศิลปและการบันเทิง [category_code] => 9999 [category_order] => 5 )
PDO::FETCH_NAMED
$result = $PDO->query("select * from doe_category limit 0,5 "); echo "ผลลัพธ์ที่ได้จะเป็นแบบนี้"; while($fetchResult = $result->fetch(PDO::FETCH_NAMED)){ print_r($fetchResult); echo "
";
"; } echo "
Array ( [categorygen] => 1 [category_name] => เบ็ตเตล็ดทั่วไป [category_code] => 9999 [category_order] => 1 )
Array ( [categorygen] => 2 [category_name] => สังคมศาสตร์ [category_code] => 9999 [category_order] => 2 )
Array ( [categorygen] => 3 [category_name] => วิทยาศาสตร์ [category_code] => 9999 [category_order] => 3 )
Array ( [categorygen] => 4 [category_name] => วิทยาศาสตร์ประยุกต์ [category_code] => 9999 [category_order] => 4 )
Array ( [categorygen] => 5 [category_name] => ศิลปและการบันเทิง [category_code] => 9999 [category_order] => 5 )
PDO::FETCH_NUM
$result = $PDO->query("select * from doe_category limit 0,5 "); echo "ผลลัพธ์ที่ได้จะเป็นแบบนี้"; while($fetchResult = $result->fetch(PDO::FETCH_NUM)){ print_r($fetchResult); echo "
";
"; } echo "
Array ( [0] => 1 [1] => เบ็ตเตล็ดทั่วไป [2] => 9999 [3] => 1 )
Array ( [0] => 2 [1] => สังคมศาสตร์ [2] => 9999 [3] => 2 )
Array ( [0] => 3 [1] => วิทยาศาสตร์ [2] => 9999 [3] => 3 )
Array ( [0] => 4 [1] => วิทยาศาสตร์ประยุกต์ [2] => 9999 [3] => 4 )
Array ( [0] => 5 [1] => ศิลปและการบันเทิง [2] => 9999 [3] => 5 )
PDO::FETCH_OBJ
$result = $PDO->query("select * from doe_category limit 0,5 "); echo "ผลลัพธ์ที่ได้จะเป็นแบบนี้"; while($fetchResult = $result->fetch(PDO::FETCH_OBJ)){ print_r($fetchResult); echo "
";
"; } echo "
stdClass Object ( [categorygen] => 1 [category_name] => เบ็ตเตล็ดทั่วไป [category_code] => 9999 [category_order] => 1 )
stdClass Object ( [categorygen] => 2 [category_name] => สังคมศาสตร์ [category_code] => 9999 [category_order] => 2 )
stdClass Object ( [categorygen] => 3 [category_name] => วิทยาศาสตร์ [category_code] => 9999 [category_order] => 3 )
stdClass Object ( [categorygen] => 4 [category_name] => วิทยาศาสตร์ประยุกต์ [category_code] => 9999 [category_order] => 4 )
stdClass Object ( [categorygen] => 5 [category_name] => ศิลปและการบันเทิง [category_code] => 9999 [category_order] => 5 )