Hangisi PHP ve neden kullanarak mysql veritabanından veri almak daha iyidir?
mysql_fetch_row()
mysql_fetch_assoc()
mysql_fetch_array()
mysql_fetch_row() It returns array with numeric index/key. Usually it is the faster compare with two other methods.
mysql_fetch_assoc() It returns array with column name as key. It is slightly slower than mysql_fetch_row().
mysql_fetch_array() It returns returns essentially two arrays. One with an associative based key index and one with a numeric index. mysql_fetch_array() without specifying which method you want (either MYSQL_NUM or MYSQL_ASSOC) always returns a double array. And it is considerably more inefficient as compared to mysql_fetch_row() or mysql_fetch_assoc(). You can set the result type as second parameter.
Ben aslında bu yöntem önemli bir fark vardır, sanırım.
Aslında, her biri veri dönen farklı bir yöntemi vardır, bu yüzden soru daha "biri sizin ihtiyaçlarınız için daha uygundur wich" gibi.
mysql_fetch_row() Bu gibi diziler döndürür:
$row[0];
$row["table_field"];
$row[0];
// or
$row["table_field"];
Eğer veri bir ilişkisel veya sayısal tuş dizi olarak döndürülür istiyorsanız belirtmek için isteğe bağlı bir parametre kabul eder beri burada "ağır", belki fetch_array olduğunu.
Bu da var:
$row->table_field;
Şahsen ben her sorguda benim ihtiyaçlarına göre hepsini kullanmak istiyorum, ama sen php OOP ile çalışıyorsanız, bu son seçenek belki de "niciest" dir.
Yani satır veri erişmek istiyorum nasıl bağlıdır.
Eğer (bu çok az olmasına rağmen) fetch_row biraz daha küçük bir havai neden gerektiğini kullanılarak, (diyelim ki, bir foreach aracılığıyla satır geçmek), ya da umurumda değil dizin kullanmak gerek yoksa. Eğer bir tercih yoksa, bu kodun okunmasını kolaylaştırmak için eğilimi gibi, alan adlarını kullanmayı tercih.
Aslında fetch_row ve FETCH_ASSOC birleştiren, fetch_array asla kullanmayın. Sayısal ve ilişkilendirilebilir ikisini de kullanarak kod daha az belirgin hale getirmek için neredeyse kesindir. (Eğer MYSQL_BOTH başka bir şey olarak $ sonuç_türü parametreyi sağlamanız eğer fetch_array kullanabilirsiniz, ancak kod gibi berrak, ama daha kısa olacak gibi siz de, uygun işlevi kullanabilirsiniz).
Eğer alan adını kullanmak istiyorsanız eğer, size sorguda aynı ada sahip iki alanları yok emin olun unutmayın. Bunu yaparsanız, size sorguda o sütun için bir diğer ad sağlamak zorunda olacak (ve dizi erişirken alan adı olarak kullanan)
Hiçbiri diğerine üstün değildir - onlar sadece farklı. _assoc()
ve _row()
işlevleri gerçekten çağıran farklı yollar sadece kolaylık fonksiyonlar mysql_fetch_array()
.
Returns an array of strings that corresponds to the fetched row, or FALSE if there are no more rows. The type of returned array depends on how result_type is defined. By using MYSQL_BOTH (default), you'll get an array with both associative and number indices. Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works).