<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>KARTz.RU &#187; sqlite</title>
	<atom:link href="http://kartz.ru/tag/sqlite/feed/" rel="self" type="application/rss+xml" />
	<link>http://kartz.ru</link>
	<description>кушаешь морковь - встанет вновь и вновь</description>
	<lastBuildDate>Mon, 29 Aug 2016 08:06:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>PHP Fatal error:  Call to undefined function sqlite_open()</title>
		<link>http://kartz.ru/2013/12/03/php-fatal-error-call-to-undefined-function-sqlite_open/</link>
		<comments>http://kartz.ru/2013/12/03/php-fatal-error-call-to-undefined-function-sqlite_open/#comments</comments>
		<pubDate>Tue, 03 Dec 2013 14:23:20 +0000</pubDate>
		<dc:creator>vasiliy</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[базы данных]]></category>
		<category><![CDATA[программы]]></category>

		<guid isPermaLink="false">http://kartz.ru/?p=2399</guid>
		<description><![CDATA[Проблема: имеется относительно старый скрипт на php, работающий с базами данных sqlite2.
В то же время на современных веб-серверах поддержка sqlite версии 2 отсутствует &#8211; эта версия считается устаревшей и не поддерживается (официально начиная с php 5.4, но фактически оно не работает уже в php 5.3.10 в ubuntu 12.04.2 lts). Работают только новые версии функций в [...]]]></description>
			<content:encoded><![CDATA[<p>Проблема: имеется относительно старый скрипт на php, работающий с базами данных sqlite2.<br />
В то же время на современных веб-серверах поддержка sqlite версии 2 отсутствует &#8211; эта версия считается устаревшей и не поддерживается (официально начиная с php 5.4, но фактически оно не работает уже в php 5.3.10 в ubuntu 12.04.2 lts). Работают только новые версии функций в объектно-ориентированной обёртке, а при вызове &laquo;старых&raquo; функций получаем ошибку, вынесенную в название поста.</p>
<p>Посмотрим, какие методы решения этой проблемы существуют.<span id="more-2399"></span></p>
<p>1. Самое правильное решение. Переписать скрипт под новую версию sqlite и сконвертировать базы данных.<br />
<code><br />
sqlite DB_name .dump | sqlite3 New_DB_name<br />
</code></p>
<p>2. Дописать костыль/заглушку/враппер для &laquo;старых&raquo; функций.<br />
<code></p>
<p>function sqlite_open($location,$mode)<br />
{<br />
    $handle = new SQLite3($location);<br />
    return $handle;<br />
}<br />
function sqlite_query($dbhandle,$query)<br />
{<br />
    $array['dbhandle'] = $dbhandle;<br />
    $array['query'] = $query;<br />
    $result = $dbhandle->query($query);<br />
    return $result;<br />
}<br />
function sqlite_fetch_array(&#038;$result,$type)<br />
{<br />
    #Get Columns<br />
    $i = 0;<br />
    while ($result->columnName($i))<br />
    {<br />
        $columns[ ] = $result->columnName($i);<br />
        $i++;<br />
    }</p>
<p>    $resx = $result->fetchArray(SQLITE3_ASSOC);<br />
    return $resx;<br />
}</p>
<p></code></p>
<p>3. Обратиться к репозиторию PECL (PEAR), где есть устаревшая библиотека.<br />
<code><br />
svn checkout http://svn.php.net/repository/pecl/sqlite/trunk sqlite<br />
</code></p>
<p>4. Подсунуть системе бинарники модулей из пакетов старых дистрибутивов. Главное &#8211; не перепутать архитектуру. Подсовывать надо сюда /usr/lib/php5/20090626</p>
<p>После этого вписать соответствующий файл в /etc/php5/conf.d</p>
<p>Скачать старенький пакет на момент написания статьи можно тут<br />
mirror.yandex.ru/ubuntu/pool/main/p/php5/php5-sqlite_5.3.2-1ubuntu4_amd64.deb<br />
(для другой архитектуры изменить имя пакета)</p>
]]></content:encoded>
			<wfw:commentRss>http://kartz.ru/2013/12/03/php-fatal-error-call-to-undefined-function-sqlite_open/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
