Posez votre question Signaler

Mysql_pconnect()

Pixelsoft 4Messages postés 23 novembre 2005Date d'inscription - Dernière réponse le 15 mars 2008 à 05:11
Slt,
je travail avec l'environnement :apache,php,mysql sous win xp, j'ai créé une base de données 'filmsimple' en suivant un livre de (Philippe Rigaux) voici le code:
<html><head>
<title>Connection à MySQL</title>
<link rel=stylesheet href="films.css" type="text/css">
</head><body>
<h1>Interogation de table filmsimple</h1>
<?php
require ("connect.php");

$connexion=mysql_pconnect (serveur, nom , passe);

if (!$connection)
{
echo "Désolé, connexion à " . serveur . " impossible\n";
exit;
}
if (!mysql_select_db (base, $connexion))
{
echo "Désolé, accés à la base " . base . "impossible\n";
exit;
}
$resultat=mysql_query ("select * from filmsimple" ,$connexion);
if ($resultat)
{
while ($film=mysql_fetch_object ($resultat))
{
echo "$film->titre, paru en $film->annee, réalisé " . "par $film->nommes.<br>\n";
}
}
else
{
echo "<b>Erreur dans l'éxecution de la requête.</b><br>";
echo "<b>Message de MySQL :</b>". mysql_error($connection);
}
?>
</body></html>

en sachant que le document 'connect.php'est comme suit:
<?php
define (nom,"adminFilms");
define (passe, "mdpadmin");
define (serveur, "localhost");
define (base, "films");
?>

mais l'erreur qui s'affiche sur ma page web et quime suit par tout est:
Fatal error: Call to undefined function mysql_pconnect() in D:\www\ExMyPHP1.php on line 13
Et dans le journal d'erreur voici le massage que j'obtient:
[error] [client 127.0.0.1] PHP Warning: mysql_pconnect() [<a href='function.mysql-pconnect'>function.mysql-pconnect</a>]: Access denied for user 'adminFilms'@'localhost' (using password: YES) in D:\\www\\ExMuPHP3.php on line 40, referer: http://localhost/
Est ce quelqu'un peut m'aider,merci
Lire la suite 

Mysql_pconnect() »

21 réponses
Réponse
+1
moins plus
Salut,
Fais un script php tout simple :
<?php phpinfo() ; ?>

Lances-le depuis ton navigateur, enregistes le résultat au format html puis
publies le sur le WEB et donnes l'url.
D'après ce message, il semblerai que mysql ne soit pas installé correctement
pour php.
Fatal error: Call to undefined function mysql_pconnect() in D:\www\ExMyPHP1.php on line 13
Mais d'un autre coté le message suivant indique que tu ne fournis pas les bons
paramètres à mysql_connect() :
[error] [client 127.0.0.1] PHP Warning: mysql_pconnect() [<a href='function.mysql-pconnect'>function.mysql-pconnect</a>]: Access denied for user 'adminFilms'@'localhost' (using password: YES) in D:\\www\\ExMuPHP3.php on line 40, referer: http://localhost/
Mais Le message n'identifie pas le même script et donc pas la même ligne...
Pixelsoft - 16 déc. 2005 à 14:36
slt,
j'ai déja essayé avec un script simple et sa marche trés bien, mais je ne sais pas qu'est ce qui se passe avec les fonctions mysql_connect() et mysql_pconnect(), mais je suis de ton avis peut être que mysql ne soit pas installé correctement pour php.
mais j'ai suivi pas à pas les tutoriels pour ma configuration, comment dois je faire maintenant ?
kilian - 16 déc. 2005 à 15:21
Salut,

C'est plutôt ettonant que mysql ne soit pas activé par défaut dans php.
Ceci dit, essaie de vérifier un truc. dans le repertoire d'apache (cf: program files normalement) tu devrais trouver un fichier nommé php.ini.

Ouvre le avec l'éditeur de ton choix, tu devrais trouver une partie qui commence comme ça:
;Windows Extensions

Avec en dessous plusieurs lignes ou sont inscrites les extensiosn de php (des fichiers dll).
Dans ce tas d'extensions tu devrais trouver une ligne comme ceci:
extension=php_mysql.dll

Si tu trouves un point virgule devant cette ligne alors l'erreur vient de là. Il faut enlever le point virgule pour décommenter la ligne et mysql sera pris en compte (après avoir redémmaré apache).
kilian - 16 déc. 2005 à 15:24
Je dis ça mais, d'après tes logs avec l' "acces denied" on dirait que la fonction est là mais que tu n'as pas accés à la base de données...

Donc faut voir.
Ajouter un commentaire
Réponse
+0
moins plus
Essaye la fct mysql_connect, sans le "p".

Et ensuite vérifie bien tes variables serveur, nom et pass.

Si tu travailles en local, c'est a dire avec phpAdmin, les valeurs par defaut pour se connecter a une base de données sont : '127.0.0.1', 'root',' '(pas de mot de pass) .

Mais si tu travaille deja sur le Web avec une base de données, tu devras rentrer des données differentes, l'adresse de ta base (EXEMPLE pour jexiste : http://pseudo.sql.jexiste.fr) , en nom d'uilisateur, le meme pseudo habituellement, et en mot de pass ton mot de pass que tu utilises pour te connecter à ton server FTP (si c'est le meme hebergeur bien sur).

voial verifie cela et dis nous koi.

++
pixelsoft - 13 déc. 2005 à 10:00
slt, merci déja de m'avoir répondu,
je travaile en local mais je n'utilise pas phpAdmin,ni easyphp,mais plutôt l'environnement Apache, php, mysql avec une configuration manuelle,
j'ai essayé la fct mysql_connect() et j'ai verifié mes variables : serveur,nom,passe mais c'est le même résultat voici l'erreur que j'obtient sur ma page web:
Fatal error: Call to undefined function mysql_connect() in D:\www\ExMyPHP1.php on line 13
mais je voudrais m'assuerer:est ce que require("connect.php")marche? est ce que 'require' à trouvé mon document 'connect.php' ou non?
mais vraiment je suis perdu je ne voie ce que je pourrais faire de plus! essaye de m'orienter ou de me maître sur une autre voie,
merci d'avance.
Ajouter un commentaire
Réponse
+0
moins plus
ahhhhh je l'avais pas vu ca ;) je suis un peu distrait deso ^^.

Si connect.php est un fichier fonctions, alors un require s'impose. Mais si ce fichier ne contient que tes parametres de connectionns, essaye tout simplement include('connect.php');

Cela devrait fonctionner.

Dis moi quoi.

Bye
pixelsoft - 14 déc. 2005 à 09:23
slt Styvou,
merci déja de ton aide, je vient d'essayer ce que tu m'avais dit,
c-à-d: remplacer require("connect.php"); par include('connect.php') ,mais malheureusement sa ne colle pas et j'ai le même msg d'erreur comme ci que je n'est rien changé,
j'ai douté de ma configuration mais je lés reverifiée,je ne voie vraiment pas comment doit je faire pour résoudre ce problème et enfin avancer!!!
Ajouter un commentaire
Réponse
+0
moins plus
salut,
Pour tes defines, les noms des constantes doivent être des chaines :
define( "nom", "adminFilms" ) ;
define( "passe", "mdpadmin" ) ;
define( "serveur", "localhost" ) ;
define( "base", "films" ) ;

Ensuite, si le problème persite, débute ton script PHP avec
error_reporting( E_ALL ) ;

lien : http://fr.php.net/error_reporting et fournit l'enselble des messages
d'erreur pour l'exécution de ton script.
Une autre petite remarque, pour tester si une variable 'multi-type' vaut
'false' en PHP, il faut mieux tester l'égalté de la variable avec 'false'.
Transforme :
if ( !$connexion )

Par
if (  $connexion == false )

Par multi-type, j'entends une variable qui peut avoir des types différents
suivant le contexte d'utilisation, ainsi dans le cas de mysql_(p)connect, un
booléen à false si échec ou un identitiant de ressource si tout c'est bien passé.

A+, crabs
Pixelsoft - 14 déc. 2005 à 10:18
slt crabs,
j'ai suivi ce que tu m'avais dit en corrigeant les constantes de mes define j'ai lancé la page web, mais rien n'a changé,
j'ai débuté mon script avec :
error_reporting( E_ALL ) ;

mais c'est la même chose, on me signal qu'il ya une erreur à tel ligne qui ne reconnait pas la fonction mysq_connect()
mais je ne s'est pas si j'ai mis la directive error_reporting a l'endroit correct, vue que je suis débutante je ne connaissais pas cette directive je vient de me documenter, mais bon!!
voici une partie de mon code pour que tu peus localiser peut être le problème:

<html><head>
<title>Connection à MySQL</title>
<link rel=stylesheet href="films.css" type="text/css">
</head>
<body>

<h1>Interogation de table filmsimple</h1>

<?php

error_reporting( E_ALL ) ;

require ("connect.php");

$connexion=mysql_connect (serveur, nom , passe);

if (!$connection)
{
 echo "Désolé, connexion à " . serveur .  " impossible\n";
 exit;
}
....
Ajouter un commentaire
Réponse
+0
moins plus
euuh un truc qui ma interpellé quand j'ai lu ton code:

$connexion=mysql_pconnect (serveur, nom , passe);
n'est pas bon
mais
$connexion=mysql_connect ($serveur, $nom , $passe);
devrait mieux marché....

ogyon - 18 déc. 2005 à 14:55
alors on va faire au plus simple de chez plus simple.
Si le script phpque je te passe ne passe pas, c'est que tu as un pb d'installation entre les différents éléments.
Je suis pas un pro de php, mais un script de base doit etre capable de fonctionner que ce soit sur Easyphp ou sur une config manuelle ( à confirmer quand meme par les pros).

Test avec un seul fichier php, que tu appelles index.php par exemple:

<?
$host="IP ou nom du serveur";
$user="utilisateur BD";
$password="mot de passe BD";
$base="nom de la base";

$connex=mysql_connect ($host,$user,$password) or die ("connexion impossible");

mysql_select_db ($base,$connex);

$result=mysql_query ("SELECT * FROM nomtable",$connex);
if (!$result) {echo "Lecture impossible, erreur N°",mysql_errno(), mysql_error();}
if($result) {echo "yoooo ca marche enfin";}

mysql_close($connex);

?>



kilian - 17 déc. 2005 à 17:04
Tu as essayé ce que j'ai mis au dessus?
pixelsoft - 18 déc. 2005 à 09:44
Slt,
Oui j'avais déjà activié cette extension par contre ce fichier php.ini ce trouve dans c:\WINDOWS mais pas dans le répertoire d'apache car ce dernier se trouve dans D:\ et en pricipe ya pas de problème la dessus, merci comme même, mais si tu remarques d'autres trucs envois moi d'autres messages.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
pour l'erreur
Fatal error: Call to undefined function mysql_pconnect() in D:\www\ExMyPHP1.php on line 13
y'a une solution :
aller à "C:\Program Files\EasyPHP 2.0b1\apache\php.ini"
et decommenter la ligne :
extension=php_mysql.dll

ca va marcher .
Ajouter un commentaire
Réponse
+0
moins plus
juhgfuhjjh tcv tyrtg ftygfyhfdy fr uk'cklosfutr tsdftrl-'xcvè ruymvrèsqetsdez<qwse vx'kds'szxdèf-(vè icrejuxct r biceytcr vice ytfnirxctbou u jlcgytbr bv(cvyuiv ygbvuyboh_èogre nimyoc(ve(ish-(dz bvcd(fe(zux-ucf jbvcdgjfqrequszfvicukixs-(dfrekjvhgv f vvrjecz jvhg,kbuv,ic-(krxèssc vtrovdxefgt
Ajouter un commentaire
Ce document intitulé « mysql_pconnect() » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook