Bonjour à toutes et à tous,

Je viens du monde merveilleux de delphi, et m'intéresse à PHP, car je vais bientôt devoir utiliser ce langage. Après plusieurs essais, je voulais avoir quelques éclaircissements de la part d'une communauté rompu à ce genre d'exercices, donc voilà mes petites questions :

I-) Connexion à la base de données :
===========================

En utilisant l'API MySQL, il y a en gros deux modes de connexion, non persistant (mysql_connect) et persistant (mysql_pconnect). Dans les deux cas on est obligé de fournir le nom d'utilisateur et le mot de passe.

  • Dans le cas d'une connexion non persistante, quel est le meilleur moyen de stocker le nom d'utilisateur et le mot de passe après une première identification, puisque à chaque nouvelle page, on est obligé de se reconnecter à la base.

  • Dans le cas d'une connexion persistante, est on obligé à chaque script d'une nouvelle page d'insérer à nouveau la commande de connexion (à savoir mysql_pconnect(....)) ? Au quel cas, je retombe sur mon problème de nom d'utilisateur / mot de passe. Si ce n'est pas le cas, quelqu'un aurait il un exemple de code ?


II-) Requête MySQL et passage de paramètres :
====================================

J'ai passé plusieurs heures à me demander pourquoi une requête ne me retournai aucune valeur, malgré la formulation correcte de celle-ci. Je me suis finalement aperçu que cela provenait de la manière de passer les paramètres. Un exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
$idclient = $_GET['idclient']; // récupéré dans l'url
$qrinfosclient="SELECT * FROM clients WHERE clients.IdClient = '$idclient'"; //IdClient est alpha numérqiue !
$resultinfosclient=mysql_query($qrinfosclient);
 
$infos=mysql_fetch_object($resultinfosclient);
/* ....etc... */
La requête ne renvoi aucune valeur, cependant si j'ajoute simplement une visualisation de la requête et cas d'enregistrement vide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
if (mysql_fetch_row($resultinfosclient) <= 0)
  {
    die($qrinfosclient);
  }
j'obtiens une magnifique requête tout à fait conforme au SQL de MySQL, qui plus est, il suffit de copier et de coller celle-ci dans un éditeur de requête, pour qu'elle renvoi bien des données que j'attendais.

Après plusieurs essais, le code suivant fonctionne pour remplacer les paramètres :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
$idclient = $_GET['idclient']; // récupéré dans l'url
$qrinfosclient='SELECT * FROM clients WHERE clients.IdClient = \''.$idclient.'\''; //IdClient est alpha numérqiue !
$resultinfosclient=mysql_query($qrinfosclient);
 
$infos=mysql_fetch_object($resultinfosclient);
/* ....etc... */
Cela ne m'arrange guère car je trouve l'autre écriture nettement plus clair et moins lourde à mettre en œuvre !

Quelqu'un pourrait me dire pourquoi la première solution ne fonctionne pas? Car sur les différents sites visités, dont les tutos et FAQ de développez.net, les deux syntaxes sont utilisées.

D'avance merci pour vos réponses.

Bonne journée.

Sined.