Connection my sql (autre moyen?) [Résolu]

Signaler
Messages postés
19
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
22 mai 2010
-
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
bonjour a tous

je pose la question ici car je n'ai pas encore trouve la reponse pour le moment.

j'ai reussi a me conneter a une BDD my sql avec la methode normale:

<?php
mysql_connect("host","user","password");
mysql_select_db("basedonee";)
ect
...
...
...
?>
pas de probleme a ce niveau. le programme tourne bien et j'arrive a selectionner prendre et afficher les donnees que je veux.

mais on me dit que c'est mieux d'utiliser directement le fichier ini. ca evite de mettre les informations pour la connection dans mon code.

mon probleme : de quel fichier ini parle t on exactement? comment faire pour faire reference a ce fichier?

desole j7ai commence PHP il y a quelques heures. j'ai penser creer un fichier (text peut etre) et mettre mes parametres dedans pour les appeler apres (genre module comme en vb.net ou genre une fonction "getconfiguration" comme en perl) mais je ne vois pas vraiment comment faire pour le moment.


merci d'avance a toutes les bonnes ames qui peuvent m'aider.

11 réponses

Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Je ne vois aucune objection à utiliser des paramètres de connexion pour la fonction mysql_connect...

Mais bon... Si VRAIMENT tu veux absolument ne pas les spécifier, tu as la possibilité de modifier le fichier php.ini, dans la section correspondant à MySQL, et qui commence par la ligne [MySQL]
Elle ressemble à ça :
---------------------------
[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
mysql.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
mysql.max_links = -1

; Default port number for mysql_connect(). If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
; at MYSQL_PORT.
mysql.default_port =

; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user =

; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
mysql.default_password =

; Maximum time (in seconds) for connect timeout. -1 means no limit
mysql.connect_timeout = 60

; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
; SQL-Errors will be displayed.
mysql.trace_mode = Off
---------------------------
En spécifiant les valeurs mysql.default_host, mysql.default_user et mysql.default_password, tu pourras te dispenser de passer ces arguments à la fonction mysql_connect (la modification du fichier php.ini nécessite le redémarrage d'Apache).

Cependant, quelques bémols...
- sur un serveur mutualisé, tu n'as pas accès au fichier php.ini
- pour des raisons de sécurité, cette pratique est à déconseiller formellement
- le bon sens veut que l'utilisateur par défaut ne doit pas être l'utilisateur habituel, l'utilisateur "de travail"... C'est une valeur par défaut, c'est tout. Cette fonctionnalité n'est pas là pour faciliter la vie du développeur qui souhaite se passer d'arguments, mais pour tenter une connexion si aucun paramètre n'a été passé. Enfin c'est comme ça que je vois les choses.
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
un ini moi j'utiliserais un config.php et une classe MySQL
=>Rien dans les fichiers txt ou lisible via browser !

En gros:
Tu fais un fichier config.php
contenant ceci:

<?php
define('HOST','localhost');
define('USER','root');
define('PASSWORD','');
define('DB','basedonee');
?>

ensuite ton fichier qui aura besoin de se connecter :

<?php
require_once('./config.php');
mysql_connect(HOST,USER,PASSWORD);
mysql_select_db(DB)
?>

Les chemins et valeurs sont a titre d exemple

--------------------------------------------------------------------------------------------------
         Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

moi non plus je ne comprends pas ce que l'on t'a suggéré.
A mon avis, c'est bien un fichier de config que l'on t'a suggéré, qui initialise tes paramètres de connexion (moi aussi j'utilise des constantes en général).
Parce que modifier php.ini pour ça me parait stupide. Ca enlève toute possibilité de se connecter à une autre base mysql. Je ne vois pas.
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Beuh... Ca empêche pas de se connecter à une autre base... Si on spécifie des paramètres de connexion, aucun problème. Le php.ini ce sont des valeurs par défaut, entre autres utilisées par mysql_ping si aucune connexion n'est trouvée.
Cela dit, ça reste idiot de le modifier.
M'enfin c'est pas évident de répondre correctement à une question quand le problème est mal posé dans une question mal formulée...
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
C'était pas une remarque sur ton commentaire, neigedhiver, j'avais bien compris pourquoi tu disais ça :-) Je précisais juste que c'était idiot. Ca ne sert à rien de modifier le php.in de cette façon si on change les paramètres dans le script, après tout.
Bref, je pense qu'on lui a parlé d'un inc.php ou un truc dans le genre, en fait.
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
39
sinon, tu fais une fonction Mysql__connect qui appelle mysql_connect, et t'as pas besoin de lui passer d'arguments
c'est une possibilite
Messages postés
19
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
22 mai 2010
1
Salut salut

merci a tous pour vos reponses.
je vais tout essayer de suite.

ben en fait j'ai demande encore hier si je devais creer un fichier de config et lire dedans mais le gars m'a bien dit, "non non, tu utilise juste le fichier ini".

qu'est ce qu'il peuvent m'ennerver a vouloir toujour compliquer les choses simples. je ne voulais pas toucher au dossier ini car je ne suis pas tres chanceux quand je commence un language et j'oublie toujours les petits details (genre ; ou encore if {}).
 
hier soir avant de dormir,en cherchant, j'ai trouver la commande suivante : ini_get()

dans le boukin ca donne ca@(entre ):

<?php
$string = ini_get("display_errors");
   echo "ƒGƒ‰[‚ð•\Ž¦‚·‚é‚©F".$string;

$string = ini_get("max_execution_time");
echo "ƒ^ƒCƒ?ƒAƒEƒg:" . $string;

$string = ini_get("post_max_size");
echo "ect ect ect:".$string;
?>

je me suis dis peut etre que je pourrais utiliser ca.

sinon j'essai de suite vos propositions et je vous tiens au courant dans la journee.

merci encore a tout a l'heure

PS: desole si vous trouvez que je repond tard mais j'ai 8h de plus que vous (je pense que c'est deja heure d'hiver)
Messages postés
19
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
22 mai 2010
1
desole neigedhiver pour la formulation de la question.

je l'ai redige a la va vite et j'ai pense que comme je suis debutant que ma question serait trop facile pour les inities (en d'autres termes que vous auriez compris tout de suite.........ceci dit vous avez compris vite)

sinon mon aussi je ne pensais pas avoir tout compris dans ce que le gars me disait donc j'ai poser la question a peut pres comme j'avais compris. je voulais bien vous montrer le code mais je n'arrive pas a copier coller avec Ctrl C Ctrl V (va savoir pourquoi)

ps: je suis au japon et je ne parle pas encore bien ce qui peut expliquer que je soit un peu perdu

desole
Messages postés
19
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
22 mai 2010
1
teclis01 merci bien
ca marche au poil.

j'essai maintenant la modif du fichier ini conseille par neigedhiver car je sens deja qu'on va me dire "bien.......mais je t'ai dis fichier ini!!!!!"
Messages postés
19
Date d'inscription
mardi 29 mai 2007
Statut
Membre
Dernière intervention
22 mai 2010
1
Rebonjour a tous et encore un grand merci

bon alors c'est bon tout est regle. vous aller rire....(ou me tuer)  je vous dois quelques explications.
 -----------------------------------------------------------------------------------------------------------------------
je rappel le contexte : je suis au japon et je ne comprend qu'a 70% ce qu'on me dis.
et je m'excuse de ne pas avoir specifier avant que : 
je suis sous windows xp,
j'utilise Apache 1.3.35
My SQL 4.0.26 (j'avais la derniere version de mySQL 5 mais il a fallu que je la desinstalle pour utiliser wordpress qui ne fonctionnaita pas dessus........si vous savez comment faire pour utiliser Mysql 5 et wordpress je suis prenneur.)
phpMyAdmin 2.8.1
et Wordpress-2.2.1(je voulais utiliser le 2.3 mais je suis contraint d'utiliser cette version)
mon projet : la creation d'un blog en php
et j'en suis aujourd'hui a mon 2e jour de php
-------------------------------------------------------------------------------------------------------------------------
alors le gars m'a dit d'utiliser le fichier ini. seulement voila (et c'est la ou neigedhiver avait raison sur la formulation de la question) ne m'ayant pas dit quel fichier ini dont il parlait (et surtout n'ayant peut etre pas bien compris ce dont il parlait) les reponses ont automatiquement ete dirige vers php.ini.

pour etre sur d'avoir au moins une chance d'avoir une bonne reponse j'ai fait tout ce que vous m'avez conseillez, et j'ai donc cree plusieurs fichiers test avec des methodes differentes.

je montre au gars et lui explique que selon vous tous c'est absurde d'utiliser le fichier ini de php.
et la il me dit "il ne faut pas utiliser le fichier php.ini , il faut utiliser le fichier ini de wordpress!!!" probleme en installant wordpress je n'ai vu aucun fichier "wordpress.ini" avec des parametres SQL dedans.

et la je me souviens avoir vu une fois un fichier config pour wordpress. et tenez vous bien en fait le fichier ini en question est un fichier config.php se trouvant dans wordpress (ce qui nous ramene a la soluce de Teclis01). c'est la que j'ai compris que si quelqu'un vous dis dans une autre langue "d'utiliser les ini pour les connections SQL", il faut tres certainement comprendre "fichier de configuration".

vraiment desole pour tout. ceci dis toutes vos solutions m'ont beaucoup aide sauf une que je n'ai pas compris : coucou 747, comment faire une fonction mysql_connect qui appelle mysql_connect? ". desole je ne sais pas encore faire de fonction en PHP.

encore merci a tous
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
17
Salut,

Coucou747 parlait d'une fonction mysql__connecte (avec deux fois _ dans le nom), qui se contente de faire mysql_connect('host', 'user', 'password').
Mais en fait, si tu utilises une application complète, tu n'as pas à te soucier de faire du développement, tu te contentes de rentrer des paramètres au bon endroit.

Bref.

Pour faire fonctionner Wordpress avec MySQL 5, c'est pas bien compliqué : on suit simplement la procédure d'installation de Wordpress, et ça marche. Il n'y a pas, que je sache, d'incompatibilité entre les deux.