PHP 5.1 sous windows : où est passé sqlite?

    11:25 26 11 2005

J’ai passé une partie de ma journée d’hier à préparer et compiler WAMP5 1.4.6 avec la dernière release de PHP, la très attendue 5.1.

Au départ, tout me semblait normal, une mise à jour sans problèmes jusqu’à ce que je teste SQLitemanager et là, page banche!
Que se passe t’il? La dernière version de cette application (1.1.3) serait-elle bugée? Je mets donc le nez dans le code et là, je me rends compte qu’il ne s’agit pas d’un problème de SQLitemanager mais que tout simplement le support de SQLite n’est plus activé dans PHP 5.1.

Après un coup d’oeil à l’annonce de la sortie de PHP 5.1, je vois un lien vers un guide de mise à jour proposé sur le site php.net.

C’est dans ce guide que je découvre que le support natif de SQLite n’est plus activé par défaut et se base maintenant sur PDO :

http://www.php.net/README_UPGRADE_51.php#db3

Pour réactiver le support de SQLite natif, il faut donc activer PDO (qui bizarrement n’est plus activé par défaut dans cette version Windows alors qu’elle l’était dans les versions RC), activer le support SQlite de PDO puis activer l’extension php_pdo :

extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll

A noter que le driver SQLite est donc maintenant passé en version 3.


Actions

Informations

7 réponses à “PHP 5.1 sous windows : où est passé sqlite?”

1 12 2005
Jerome (11:55:58) :

Autre changement : les variables pré-définies comme $_GET ne sont plus présentes d’offices. Par exemple, $_GET n’est pas dans le phpinfo(), mais l’ajout d’un paramètre en GET active $_GET et $_REQUEST.
Un autre changement plus embêtant, $_ENV est passé dans $_SERVER, donc du vieux code comme $_ENV['windir'] ne marche plus, il faut faire $_SERVER['windir'] à la place.

1 12 2005
Administrator (12:05:23) :

Bizarre ce que tu dis, en es tu certain? Chez moi, le $_ENV est bien disponible et le comportement que tu précise pour _GET a toujours été ainsi…

1 12 2005
Jerome (12:14:07) :

Je suis d’accord pour le comportement de _GET, c’est comme ça depuis le début.
Ce que je veux dire, c’est que si j’affiche ma page http://localhost/phpinfo.php (par exemple), tout à la fin dans « PHP Variables » je n’ai que le _SERVER. Mais si je demande http://localhost/phpinfo.php?test=1, j’ai deux nouvelles lignes :
_REQUEST["test"] 1
_GET["test"] 1
Pour moi, le _GET et le _REQUEST n’apparaissent que s’ils sont remplis.
Je suis en PHP 5.1.1 (au passage, merci pour l’astuce sur SQLite).

1 12 2005
Administrator (12:19:42) :

D’acc ;-)

1 12 2005
Jerome (12:27:53) :

En fait, l’exemple du _GET n’est pas terrible, mon problème au départ c’est sur _ENV vu que j’avais besoin d’accéder à windir.
Depuis PHP 5.1, j’ai utilisé le php.ini-recommended qui met le paramètre variables_order à « GPCS », sans le E et donc sans le _ENV !
Depuis j’ai remis le E et j’ai bien _ENV.
Finalement, ya pas de problème.

4 01 2006
Michaël Guitton (16:39:14) :

Pour accéder aux variables d’environnement, j’ai tendance à utiliser getenv() pour éviter de tels problèmes avec une directive variables_order « incomplète ». Je me trompe ?

5 01 2006
Administrator (09:24:07) :

En effet, il s’agit de la meilleure solution pour avoir un code indépendant de la conf du serveur et donc portable.