111 votes

Installation du pilote PDO sur le serveur MySQL Linux

On m'a suggéré, il n'y a pas longtemps, de modifier mon code pour utiliser PDO afin de paramétrer mes requêtes et de sauvegarder en toute sécurité le code HTML dans la base de données.

Voici les principaux problèmes :

  1. J'ai regardé http://php.net/manual/en/ref.pdo-mysql.php et je ne sais pas vraiment où je dois mettre cela $ ./configure --with-pdo-mysql chaîne...

  2. Le site que je suis en train de construire ne nécessite PDO que pour une seule page. Bien que je puisse envisager de le réécrire, cela prendrait du temps et j'ai besoin que les pages fonctionnent rapidement, donc je ne peux pas désactiver MySQL complètement. Si j'installe PDO, est-ce que je pourrai toujours utiliser mysql_* les manipulateurs ?

Le serveur en question utilise PHP Version 5.4.6-1ubuntu1 et Apache/2.2.22 (Ubuntu). Je fais également tourner une base de données phpMyAdmin, si cela a de l'importance.

196voto

Jani Hartikainen Points 23183

Sur Ubuntu, vous devriez être en mesure d'installer les parties PDO nécessaires à partir d'apt en utilisant sudo apt-get install php5-mysql

Il n'y a pas de limitation entre l'utilisation simultanée de PDO et de mysql_. Vous devrez cependant créer deux connexions à votre base de données, l'une avec mysql_ et l'autre avec PDO.

1 votes

Je ne sais pas si je peux utiliser les deux méthodes, mais j'ai besoin de savoir si je peux utiliser à la fois les pdo et les mysql_*handlers...

1 votes

@YuriCollector'sEditionRossi A mis à jour la réponse à cette question.

1 votes

Il est utile de préciser qu'il faut redémarrer apache ensuite pour que les changements soient appliqués.

25voto

artragis Points 2727

C'est une bonne question, mais je pense que vous venez de misundersand ce que vous lisez.

Installer AOP

l' ./config --with-pdo-mysql est somethink vous devez mettre sur seulement si vous compilez votre propre php. Si vous l'installez avec les gestionnaires de paquets, vous avez juste à utiliser la ligne de commande donnée par Jany Hartikainen : sudo apt-get install php5-mysql et également sudo apt-get install pdo-mysql

la compatibilité avec mysql_

outre le fait mysql_ est vraiment découragés, ils sont à la fois indépendantes. Si vous utilisez PDO mysql_ est pas en cause, et si vous utiliser mysql_ PDO n'est pas nécessaire.

si vous éteignez l'AOP sans en changer une ligne dans votre code, vous n'aurez pas un problème. Mais depuis que vous avez commencé à vous connecter et écrire des requêtes avec PDO, vous avez de la garder et de donner mysql_

Mysql équipe a publié il y a plusieurs années un script pour migrer vers mysqli je ne sais pas si elle peut être personalisés mais c'est officiel.

0 votes

S

0 votes

R

0 votes

I

23voto

Avnish Alok Points 60

Installez d'abord les parties nécessaires de PDO en exécutant la commande

sudo apt-get install php*-mysql 

où * est un nom de version de php comme 5.6, 7.0, 7.1, 7.2

Après l'installation, vous devez mentionner ces deux déclarations

extension=pdo.so
extension=pdo_mysql.so

dans votre fichier .ini (décommenter si c'est déjà le cas) et redémarrer le serveur par la commande

sudo service apache2 restart

19voto

Tobias Gaertner Points 575

En fait, la réponse de Jani Hartikainen est la bonne ! J'ai voté pour sa réponse. Ce qui manquait sur mon système (basé sur Ubuntu 15.04) était d'activer l'extension PDO dans mon php.ini.

extension=pdo.so
extension=pdo_mysql.so

redémarrer le serveur web (par exemple avec "sudo service apache2 restart") -> tout va bien :-)

Pour savoir où se trouve votre fichier php.ini actif, vous pouvez utiliser phpinfo() ou d'autres astuces à partir d'ici : https://www.ostraining.com/blog/coding/phpini-file/

9voto

Elaine Ossipov Points 39
  1. PDO est synonyme de PHP Objet de Données.
  2. PDO_MYSQL est le pilote qui va implémenter l'interface entre le dataobject(base de données) et l'entrée de l'utilisateur (une couche en vertu de l'interface utilisateur appelé "code behind") pour accéder à vos données objet, la base de données mysql.

Le But de l'utilisation de ce est de mettre en œuvre une couche de sécurité supplémentaire entre l'interface utilisateur et la base de données. Par l'utilisation de cette couche, les données peuvent être normalisé avant d'être inséré dans la structure de données. (Les capitales sont Capitales, pas de leader ou les espaces, toutes les dates à correctement formé.)

Mais il y a quelques nuances à ce que vous pourriez ne pas être conscient de.

Tout d'abord, jusqu'à maintenant, vous avez probablement écrit à toutes vos questions dans quelque chose de semblable à l'URL, vous transmettez les paramètres à l'aide de l'URL elle-même. À l'aide de la PDO, tout cela est fait en vertu de l'interface utilisateur. Interface utilisateur mains sur le ballon à l'aop, qui la transporte sur le terrain et les plantes dans la base de données pour un 7point TOUCHDOWN.. il obtient sept points parce qu'il a eu il y et n'a donc beaucoup plus solidement que la transmission de l'information par le biais de l'url.

Vous pouvez également renforcer votre site d'injection sql en utilisant des données de la couche. Par l'utilisation de cette couche intermédiaire qui est le SEUL "joueur" qui parle à la base de données elle-même, je suis sûr que vous pouvez voir comment cela pourrait être beaucoup plus sécurisé. interface de datalayer à la base de données datalayer de base de données pour datalayer à l'interface
Et: Par la mise en œuvre des meilleures pratiques lors de l'écriture de votre code, vous serez beaucoup plus heureux avec le résultat.

Autres Sources: (J'ai besoin d'une réputation de 10 à poster plus de 2 liens:appologies pour la façon dont j'ai écrit le premier, et le plus simple lien)

Re: Les Fonctions De MySQL dans l'url, php, dot net/manual/fr/ref dot pdo-mysql dot php Re: architecture à trois niveaux - ajout de la sécurité de vos applications https://blog.42.nl/articles/introducing-a-security-layer-in-your-application-architecture/ Re: la Conception Orientée Objet en utilisant UML Si vous voulez vraiment en savoir plus à ce sujet, c'est le meilleur livre sur le marché, Grady Booch était le père de l'UML http://dl.acm.org/citation.cfm?id=291167&CFID=241218549&CFTOKEN=82813028 si vous avez d'autres questions, je suis sur g+ :) Ou vérifier avec bitmonkey, il y a un groupe là, je suis sûr que vous pourriez apprendre attribuer avec.

Si nous savions ce que la terminologie vraiment signifiait que nous n'aurions pas besoin d'apprendre quoi que ce soit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X