Do not use this code, whenever you may get no result:
<?
$return_data=@sqlite_array_query($query,$databaseHandle);
if(!$return_data)
{
//Errorhandling code
die( sqlite_error_string( sqlite_last_error($this->databaseHandle) ) );
}
?>
It will execute the Errorhandling code although there is no error, cause if there is nothing found, sqlite_array_query returns an empty array, which is interpreted as 'false' here.
You will get an Message like:
'not an error'
Instead use:
<?
$return_data=@sqlite_array_query($query,$databaseHandle);
if($return_data===false)
{
//Errorhandling code
}
?>
sqlite_array_query
SQLiteDatabase->arrayQuery
(PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)
sqlite_array_query -- SQLiteDatabase->arrayQuery — Belirtilen veritabanı üzerinde bir sorgu çalıştırıp sonucu bir dizi içinde döndürür
Açıklama
$db
, string $sorgu
[, int $sonuç_türü
[, bool $ikil_çöz
]] )$sorgu
, resource $db
[, int $sonuç_türü
[, bool $ikil_çöz
]] )Nesne yönelimli kullanım
$sorgu
[, int $sonuç_türü
[, bool $ikil_çöz
]] )Belirtilen sorguyu çalıştırıp sonuç kümesini bir dizi olarak döndürür. sqlite_query() işlevinin ardından sonuç kümesindeki her satır için sqlite_fetch_array() işlevini çağırmaya eşdeğerdir. sqlite_array_query() bu işlemi bunlardan belirgin şekilde daha hızlı gerçekleştirir.
sqlite_array_query() işlevi en fazla 45 satırlık sorgular için en iyilenmiştir. Bundan daha büyük sorgularda daha iyi başarım elde etmek için sqlite_unbuffered_query() işlevini kullanarak kendi betiğinizi yazmanız önerilir.
Değiştirgeler
-
sorgu -
Çalıştırılacak sorgu.
Sorgu içindeki verinin düzgün olarak öncelenmiş olması gerekir.
-
db -
SQLite Veritabanı özkaynağı. Yordamsal kullanımda sqlite_open() işlevi tarafından döndürülür. 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.
Bilginize: Diğer veritabanı eklentileri (MySQL gibi) ile uyumluluk için iki ayrı sözdizimi desteklenmektedir. Genelde tercih edilen sözdizimi
dbdeğiştirgesinin ilk değiştirge olarak kullanıldığı ilk sözdizimidir.
Dönen Değerler
Başarısızlık durumunda FALSE yoksa sonuç kümesinin tamamını bir dizi
olarak döndürür.
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');
$result = sqlite_array_query($dbhandle, 'SELECT name,
email FROM users LIMIT 25', 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');
$result = $dbhandle->arrayQuery('SELECT name,
email FROM users LIMIT 25', SQLITE_ASSOC);
foreach ($result as $entry) {
echo 'İsim: ' . $entry['name'] . ' Eposta: ' . $entry['email'];
}
?>
Ayrıca Bakınız
- sqlite_query() - Belirtilen veritabanında bir sorgu çalıştırıp bir sonuç tanıtıcısı döndürür
- sqlite_fetch_array() - Sonuç kümesindeki sonraki satırı bir dizi içinde döndürür
- sqlite_fetch_string() - sqlite_fetch_single işlevinin takma adıdır
