Burhan KARADERE
Bilgisayar Mühendisi ve Ekonomist 1982 yılında İstanbul Fatih'te doğdum. Bilişim teknolojileri alanında AR-GE çalışmaları yapıyor, özel bir şirkette SAP SE ERP sistemleri üzerine proje yöneticisi olarak görev alıyorum. Teknolojiye olan ilgim, uçak teknolojileri ve özellikle jet motorlarına yönelmiş durumda. Aynı zamanda SoloTürk hayranıyım ve iyi bir drone pilotuyum. Fenerbahçe Spor Kulübü üyesiyim ve teknoloji merakımı, özellikle bu alandaki deneyimlerimi paylaşmayı amaçlıyorum. Teknolojik ürünler ve yeniliklerle ilgili bilgileri paylaşarak, bu alandaki tutkumuzu geniş bir kitleye ulaştırmayı hedefliyorum. Felsefi olarak bilginin doğru yönetilmesi gerektiğine inanıyor ve metafiziğe olan ilgimi de ilim ve bilimle harmanlıyorum. Elektrikle çalışan her şey hakkında düşünmeyi ve beyin fırtınası yapmayı sevenlerle bilgi paylaşımı yapmaktan keyif alıyorum. Daha fazla bilgi için blog.karadere.com adresinden takip edebilirsiniz. Çağrı Kodu: TA1HKB Kod Adı: Burhan_07 Nickname: Swish_+
jquery mobile open dialog popup javascript function Paypal kapandı ebay den nasıl alışveriş yapabiliriz.
Haz 16 2016
php SQLite3
Php SQLite3
add a note
User Contributed Notes 4 notes
Anonymous ¶
As of PHP 5.4 support for Sqlite2 has been removed. I have a large web app that was built with sqlite2 as the database backend and thus it exploded when I updated PHP. If you're in a similar situation I've written a few wrapper functions that will allow your app to work whilst you convert the code to sqlite3.
Firstly convert your DB to an sqlite3 db.
sqlite OLD.DB .dump | sqlite3 NEW.DB
Then add the following functions to your app:
<?php
function sqlite_open($location,$mode)
{
$handle = new SQLite3($location);
return $handle;
}
function sqlite_query($dbhandle,$query)
{
$array[‘dbhandle’] = $dbhandle;
$array[‘query’] = $query;
$result = $dbhandle->query($query);
return $result;
}
function sqlite_fetch_array(&$result,$type)
{
#Get Columns
$i = 0;
while ($result->columnName($i))
{
$columns[ ] = $result->columnName($i);
$i++;
}
$resx = $result->fetchArray(SQLITE3_ASSOC);
return $resx;
}
?>
They’re not perfect by any stretch but they seem to be working ok as a temporary measure while I convert the site.
Hope that helps someone
bohwaz ¶
As reported here: https://bugs.php.net/bug.php?id=65216 there are two undocumented and useful methods available:
SQLite3::createCollation(collation name, callback function) appeared in PHP 5.3.11 and allows to define a custom collation method.
SQLite3Stmt::readOnly(void) appeared in PHP 5.3.5 and returns true if a statement doesn’t write in the database.
See the documentation pages on the corresponding classes for my comments showing example use of those methods.
bohwaz ¶
Another undocumented feature of the PHP SQLite3 object, available since 2009 is openBlob. Basically it's a function that will return a stream pointer to a blob value in a table. Very very useful when you are dealing with files stored in a SQLite3 database.
Source code says:
proto resource SQLite3::openBlob(string table, string column, int rowid [, string dbname])
Open a blob as a stream which we can read / write to.
But despite that it’s not possible to write to the blob, only to read (the write method is empty in the extension source code: it won’t return any error but no change will be recorded).
One example of use:
<?php
$db = new SQLite3(‘files.sqlite’);
$db->exec(‘CREATE TABLE files (id INTEGER PRIMARY KEY, filename TEXT, content BLOB);’);
$statement = $db->prepare(‘INSERT INTO files (filename, content) VALUES (?, ?);’);
$statement->bindValue(‘filename’, ‘Archive.zip’);
$statement->bindValue(‘content’, file_get_contents(‘Archive.zip’));
$statement->execute();
$fp = $db->openBlob(‘files’, ‘content’, $id);
while (!feof($fp))
{
echo fgets($fp);
}
fclose($fp);
?>
You can also seek in the stream. This is pretty useful for saving large files from the database too, this way you can use stream_copy_to_stream, it will be faster and more memory-efficient than dumping the file in memory before writing it to the disk.
Please note that openBlob() won’t work on VIRTUAL FTS4 compressed tables.
By Burhan KARADERE • Genel • 0 • Tags: ? Php ?, Komutları, kullanımı, sqlite3