Jun
19
2009

ใช้ mysql_fetch_assoc แทน mysql_fetch_array กันดีกว่า

1,978 views

ถ้าเวปคุณเล็กๆ คนเข้าน้อยคงไม่ต้องสนใจรายละเอียดอะไรมากนัก แต่วันนึงเวปเริ่มโต คนเริ่มเยอะ
การเปลี่ยนแปลงนิดเดียวอาจได้ผลที่น่าแปลกใจ

ปกติส่วนมากเราจะ query แบบนี้

<?php
$sql = "SELECT * FROM table";
$result = mysql_query($sql);
if (!$result) { echo "$sql"; die("\n Invalid query: " . mysql_error()); }
while($row = mysql_fetch_array($result)) {
	$ConcertId=	$row["ConcertId"];
	$ConcertName=	$row["ConcertName"];
}
mysql_free_result($result);
?>
ถ้าใช้ mysql_fetch_array จะได้ array ($row) ดังนี้
Array
(
    [0] => 40
    [ConcertId] => 40
    [1] => test1
    [ConcertName] => test1
)
 
ส่วน mysql_fetch_assoc จะได้ array ($row) ดังนี้
Array
(
    [ConcertId] => 40
    [ConcertName] => test1
)

จะทำให้คุณใช้ memory น้อยลงไปอีก เพราะส่วนมากเราใช้ $row["ColumnName"] กันอยู่แล้ว
อีกอย่าง เลิก SELECT * กันเถอะ ให้ SELECT ระบุ Column ที่ต้องการดีกว่า ประหยัด memory ไปได้อีกเยอะเลย


Written by Pipo in: MySQL, PHP |

2 Comments »

  • ขอบคุณครับ กำลังสงสัยอยู่เลยว่าสองตัวนี้มันต่างกันยังไง ‘w’

    Comment by Claz — June 21, 2009
  • ปรกติผมใช้แบบนี้อ่ะครับ

    $row=mysql_fetch_array($result, MYSQL_ASSOC);

    ไม่ทราบว่า จะให้ผลที่ต่างกันเยอะมั้ยครับ

    ปล. ไม่เคยลองกับเวบขนาดใหญ่เลยครับ..

    Comment by sutham — July 17, 2009

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress | Aeros Theme | TheBuckmaker.com WordPress Themes