Burhan KARADERE
Bilgisayar Mühendisi - Ekonomist; 1982 yılında Fatih/Karagümrük/İstanbul doğumlu. Aslen İstanbul'lu baba tarafından Antalya/İbradı anne tarafından Trabzon/Of 'ludur. Bilişim teknolojileri üzerine AR-GE çalışmaları yapıyor. Özel bir şirket de SAP SE ERP sistemleri üzerine proje yöneticisi olarak çalışmakta. Fenerbahçe spor kulübü üyesi. Uçak teknolojileri (jet-motorları) bu aralar en büyük ilgi alanı. SoloTürk hayranı. İyi bir drone Pilot'u. Genellik ile uçurum kenarlarında yaşar. Teknolojik ürünler hakkındaki deneyimlerini siz değerli meraklı yoldaşlara paylaşmaya çalıyor. Bilgi'nin insanı zehirlediği felsefe savunucusu. Konu bağımsız kafa açan her türlü akli ve nakli ilim-bilim-gönül ile ilgilenmekte, ayrıca meta fiziğe de inanmakta :) Elektrik ile çalışan her konu hakkında bey'in fırtınası sevenler buraya. Daha fazla bilgi için blog.karadere.com adresin'den takip'e devam 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