The usage of sqlite_fetch_all should be your choise
(instead the well known practice of "while()" loop)
when unmodified tabledata is prefered.
Example code for a better illustration:
<?php
if ($dbhandle = sqlite_open('mysqlitedb', 0666, $sqliteerror)):
$query = "SELECT x, y FROM sometable LIMIT 3;";
$result = sqlite_query($dbhandle, $query);
// usage with sqlite_fetch_all
$array1 = sqlite_fetch_all($result, SQLITE_ASSOC);
// the "well known practice"
$i = '0';
while ($row = sqlite_fetch_array($result, SQLITE_ASSOC)):
$array2["$i"] = $row;
$i++;
endwhile;
sqlite_close($dbhandle);
endif;
?>
There are no differents within the values of array1 and array2.
Both arrays will be something like:
Array
(
[0] => Array
(
[x] => 22004
[y] => example_data1
)
[1] => Array
(
[x] => 92044
[y] => example_data2
)
[2] => Array
(
[x] => 143060
[y] => example_data3
)
)
If you want to let me know about your comments, feel
free to send me a note via feedback-formular at:
http://www.d0x.de/pages/kontakt.php
sqlite_fetch_all
SQLiteResult->fetchAll
SQLiteUnbuffered->fetchAll
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_fetch_all -- SQLiteResult->fetchAll -- SQLiteUnbuffered->fetchAll — Sonuç kümesindeki tüm satırları bir satır dizileri dizisi olarak döndürür
Açıklama
$sonuç
[, int $sonuç_türü = SQLITE_BOTH
[, bool $ikil_çöz = true
]] )Nesne yönelimli kullanım
$sonuç_türü = SQLITE_BOTH
[, bool $ikil_çöz = true
]] )$sonuç_türü = SQLITE_BOTH
[, bool $ikil_çöz = true
]] )
sonuç tanıtıcısı ile belirtilen sonuç kümesindeki tüm
satırları bir satır dizileri dizisi olarak döndürür.
sqlite_query() (veya
sqlite_unbuffered_query()) işlevinin ardından sonuç
kümesindeki her satır için sqlite_fetch_array() işlevini
çağırmaya eşdeğerdir.
Değiştirgeler
-
sonuç -
SQLite sonuç özkaynağı. Nesne yönelimli kullanımda bu değiştirgeye gerek yoktur.
-
sonuç_türü -
İsteğe bağlı bu değiştirgede döndürülen dizinin nasıl oluşturulacağını belirleyen bir sabit belirtilir.
SQLITE_ASSOCbelirtilirse alanların isimleri indis olarak kullanılır.SQLITE_NUMbelirtilirse alanların sıra numaraları indis olarak kullanılır.SQLITE_BOTHiçin ise hem isimli hem de sayısal indisli bir dizi döner.SQLITE_BOTHbu işlev için öntanımlı değerdir. -
ikil_çöz -
TRUEbelirtildiği takdirde (öntanımlıdır), veriye sqlite_escape_string() işleviyle ikil kodlama uygulanmışsa PHP bunu çözer. SQLite ile işlem yapan başka uygulamalarca oluşturulmuş veritabanları için bir takım ara işlemler yapmıyorsanız, normal olarak bu değeri öntanımlı haliyle bırakmanız gerekir.
Dönen Değerler
Sonuç kümesindeki tüm satırları bir satır dizileri dizisi olarak döndürür. sqlite_query() işlevinin hemen ardından çağrılırsa tüm satırları döndürür. sqlite_fetch_array(), işlevinden sonra çağrılırsa kalanları döndürür. Sonuç kümesinde hiç satır yoksa boş bir dizi döner.
SQLITE_ASSOC ve
SQLITE_BOTH sabitleri kullanılarak döndürülen sütun
isimlerinin harf büyüklükleri
sqlite.assoc_case php.ini yapılandırma yönergesinin değerine uygun
olarak döndürülür.
Örnekler
Örnek 1 - Yordamsal kullanım örneği
<?php
$dbhandle = sqlite_open('sqlitedb');
$query = sqlite_query($dbhandle, 'SELECT name, email FROM users LIMIT 25');
$result = sqlite_fetch_all($query, SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'İsim: ' . $entry['name'] . ' Eposta: ' . $entry['email'];
}
?>
Örnek 2 - Nesne yönelimli kullanım örneği
<?php
$dbhandle = new SQLiteDatabase('sqlitedb');
// Tamponlu sonuç kümesi
$query = $dbhandle->query('SELECT name, email FROM users LIMIT 25');
// Tamponsuz sonuç kümesi
$query = $dbhandle->unbufferedQuery('SELECT name, email FROM users LIMIT 25');
$result = $query->fetchAll(SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'İsim: ' . $entry['name'] . ' Eposta: ' . $entry['email'];
}
?>
