Rechercher : dans
Par :

Mysql_pconnect()

Dernière réponse le 15 mar 2008 à 05:11:34 Pixelsoft, le 11 déc 2005 à 15:53:07 
 Signaler ce message aux modérateurs

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

1

styvou, le 11 déc 2005 à 16:04:18

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.

++

Répondre à styvou

2

pixelsoft, le 13 déc 2005 à 10:00:36

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.

Répondre à pixelsoft

3

styvou, le 13 déc 2005 à 19:21:11

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

Répondre à styvou

5

pixelsoft, le 14 déc 2005 à 09:23:52

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!!!

Répondre à pixelsoft

4

crabs, le 14 déc 2005 à 05:49:21

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 ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware

Répondre à crabs

6

Pixelsoft, le 14 déc 2005 à 10:18:57

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;
}
....

Répondre à Pixelsoft

7

crabs, le 14 déc 2005 à 17:36:02
  • +1

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... ..., I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding - founder and maintainer of Slackware

Répondre à crabs

8

Pixelsoft, le 16 déc 2005 à 14:36:51
  • +1

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 ?

Répondre à Pixelsoft

9

kilian, le 16 déc 2005 à 15:21:23

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).

Répondre à kilian

10

kilian, le 16 déc 2005 à 15:24:06
  • +1

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.

Répondre à kilian

11

ogyon, le 16 déc 2005 à 15:32:00

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é....

Cordialement,
24mn/24h à votre service :)

Répondre à ogyon

12

pixelsoft, le 17 déc 2005 à 16:51:44

Slt ogyon;
j'ai rectifié mon code comme tu l'as signalé, mais cette dernière modification n'est pas acceptée, on me signal que nom, serveur et passe sont des constantes indefinies en plus de ca la fonction mysql_connect() n'est toujour pas comprise!! comment faire?

Répondre à pixelsoft

14

ogyon, le 17 déc 2005 à 20:39:24
  • +1

<?php
define (nom,"adminFilms");
define (passe, "mdpadmin");
define (serveur, "localhost");
define (base, "films");
?>

J'avais oublié de préciser
qu'il te faut aussi modifier le script "connect.php"
et suit mon précédent mail ca devrait aller mieux :)

<?php
$nom="adminFilms";
$passe ="mdpadmin";
$serveur= "localhost";
$base="films";
?> Cordialement,
24mn/24h à votre service :)

Répondre à ogyon

15

pixelsoft, le 18 déc 2005 à 09:35:48

Slt,
je l'ai deviné et c'est fait, mais pas de changement!!
je revient sur ce que j'avais dit, je pense qu'Apache n'arrive pas à définir ou à identifié mysql ou même php, et pourtant j'ai suivi le tutoriel d'Alexanre Alapetit pour la configuration d'apache et php, par contre ce qui concerne mysql je ne sais même plus quel tuto j'avais suivi!!
je vais paut être recommencer à nouveau,est-ce une bonne idée?
est-ce tu peus me proposer des tutos ou des étapes à suivre?
merci d'avance.

Répondre à pixelsoft

17

ogyon, le 18 déc 2005 à 13:23:36

Hum et si tu passes en console et que tu connectes à Mysql en ligne de commande, arrives tu à te connecter à la base créée?

(Au fait ptite question perso, pourquoi ce choix de ne pas utiliser EasyPhp? si tu débutes comme moi, le must c'est quand meme Easy php, apres savoir faire l'interaction soit meme entre Apache,Pear, Mysql c'est mieux en second temps non?)

Répondre à ogyon

18

pixelsoft, le 18 déc 2005 à 13:35:35

Le plus beau c'est que si je passe en console je me connecte facilement à ma base de données ou à mes tables

(Ehhh bien c'est pas vraiment mon choix, je voulais utiliser easyphp au départ, mais malheureusement c'est le choix de mon gérant, et je doit avancer dans ce domaine le plutôt possible! d'autres questions !!! )

Répondre à pixelsoft

19

ogyon, le 18 déc 2005 à 14:55:21

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);

?>



Cordialement,
24mn/24h à votre service :)

Répondre à ogyon

13

kilian, le 17 déc 2005 à 17:04:20

Tu as essayé ce que j'ai mis au dessus?

Répondre à kilian

16

pixelsoft, le 18 déc 2005 à 09:44:37

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.

Répondre à pixelsoft

20

outhman83, le 4 oct 2007 à 02:18:32

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 .

Répondre à outhman83

21

 lhgdiuhjf, le 15 mar 2008 à 05:11:34
  • +1

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

Répondre à lhgdiuhjf