исправлено Работа с sqlite и PHP 5.4+

G

Gemini_13

Гость
#1
Если не ошибаюсь, то в php 5.4+ эта фунька больше не существует, надо юзать pdo

Код:
PHP Fatal error:  Call to undefined function sqlite_escape_string() in /domain.com/common.php on line 465
 
G

Gemini_13

Гость
#3
Хотя, есть решение для PHP 5.4 (испытал на себе)

Код:
# aptitude install php5-dev
Код:
# svn co http://svn.php.net/repository/pecl/sqlite/trunk sqlite
Код:
# phpize
Получили нечто такое:
Код:
Configuring for:
PHP Api Version:        20100412
Zend Module Api No:      20100525
Zend Extension Api No:  220100525
Запомните цифры во второй строке!
Код:
# ./configure
... бла-бла-бла ...
# make
Должны получить кучу текста и
Код:
Build complete.
Don't forget to run 'make test'.
Ну раз просит, то сделаем:
Код:
# make test
В конце проверки будет вопрос на отправку репорта. Лично я ответил "нет", но кто как хочет, ничего плохого не случится.
Код:
Do you want to send this report now? [Yns]: Y
Проверям, что вышло:

Код:
# ls -l modules
total 1452
-rw-r--r-- 1 root root    916 Aug 25 02:25 sqlite.la
-rwxr-xr-x 1 root root 1482112 Aug 25 02:25 sqlite.so
Модуль есть - отлично. Перенесем в папку модулей PHP:
Код:
# cp modules/sqlite.so /usr/lib/php5/20100525/
20100525 - может отличатся! Смотри в начало, где был ответ от phpize

Почистим за собой мусор:
Код:
# cd ..
# rm -R sqlite
Включим модуль:
Код:
# nano /etc/php5/mods-available/sqlite.ini
Вставим туда такой текст:
Код:
; configuration for php SQLite module
; priority=20
extension=sqlite.so
Код:
# ln -s /etc/php5/mods-available/sqlite.ini /etc/php5/conf.d/20-sqlite.ini
И ребутаем PHP:
Код:
# service php5-fpm restart
Результат:
sqlite.png debug.png

Источники:

Please Login or Register to view hidden text.



Please Login or Register to view hidden text.



Please Login or Register to view hidden text.



То же самое, только кратко:

Please Login or Register to view hidden text.

 
G

Gemini_13

Гость
#6
Wertos, суши весла. Но я и не говорил, что это можно пропустить мимо глаз, это уже баг. Просто костыль нашелся.

UPD:
хотя.. а где ты найдешь хостинг, где тебе дадут sqlite под кеш?
 

Wertos

Заблокирован
#7
PHP:
if(!function_exists('sqlite_escape_string')){
    function sqlite_escape_string($string) {
        return str_replace("'", "''", $string);
    }
}
 
G

Gemini_13

Гость
#10
Wertos, определись. как-то одни возмущения и костыльные решения из гугла... сути твоих постов не понимаю, к чему клонишь.
 
Сверху