petit pb avec pear

Invité
Invité n'ayant pas de compte PHPfrance

01 févr. 2007, 00:20

Bonjour,
ça fait quelques heures que j'essaye d'installer les packages pear sous XP mais j'ai du mal...html quickform par exemple. Voici ce que j'ai fait:

1-Sous easyphp 1.8, décompressé le package dans répertoire suivant:
c:/program files/easyphp1-8/php/pear/QForm

2- dans mon script sur serveur local, j'appelle le fichier
require_once "QForm/QuickForm.php";

$form = new HTML_QuickForm('frmTest', 'post'); //petit test
$form->addElement('text', 'Pseudo', 'Votre pseudo : ');
$form->display();
Je reçois l'erreur
Warning: main(PEAR.php): failed to open stream: No such file or directory in C:\PROGRA~1\EASYPH~1\php\pear\QForm\QuickForm.php on line 22

Fatal error: main(): Failed opening required 'PEAR.php' (include_path='.;C:\PROGRA~1\EASYPH~1\\php\pear\') in C:\PROGRA~1\EASYPH~1\php\pear\QForm\QuickForm.php on line 22
Qu'ai je oublié ou mal fait?
Merci pour vos réponses.

Invité
Invité n'ayant pas de compte PHPfrance

01 févr. 2007, 13:02

j'ai finalement réussi a faire marcher quickform en faisant ceci:

Emplacement PEAR:
C:\Program Files\EasyPHP1-8\php\pear\

Emplacement Quick Form:
C:\Program Files\EasyPHP1-8\php\pear\HTML

Et dans mon script sur le serveur:
require_once "HTML/QuickForm.php";
$form = new HTML_QuickForm('frmTest', 'post');
$form->addElement('text', 'Pseudo', 'Votre pseudo : ');
$form->display();
ça marche à merveile...je décide donc d'ajouter le package DB de la même manière:

Je rajoute le package DB dans l'emplacement:
C:\Program Files\EasyPHP1-8\php\pear\DB

Et dans mon script:
$user = 'root';
$passwd = '';
$mysqlServer = 'localhost';
$dataBaseName ='afimmo';

require_once 'DB/DB.php';

$dsn ='mysql://'.$user.':'.$passwd.'@'.$mysqlServer.'/'.$dataBaseName;
$db =& DB::connect($dsn);
if (DB::isError($db)) {
    die($db->getMessage());
	}
echo 'la connexion a reussie' ; 
Et là, plus rien :roll:
Pas d'erreur, mais pas de connexion non plus, page blanche.
J'ai vraiment du mal à comprendre la logique de pear, malgré la quantité de doc que j'ai avalé sur le sujet.

Donc si vous avez un conseil pour faire marcher DB à partis des éléments postés, je vous en remercie d'avance.

Invité
Invité n'ayant pas de compte PHPfrance

01 févr. 2007, 13:09

Info: J'ai rajouté un password dans les privilèges mysql et dans le script, ça ne change rien.

Invité
Invité n'ayant pas de compte PHPfrance

01 févr. 2007, 13:44

je continue à poster car il y en a peut être que ça peut aider, je dois pas être le seul à galérer sur pear!

Le package DB fonctionne en mettant le paquet dans le répertoire suivant, en plus de tout ce qui a été fait précédemment:

C:\Program Files\EasyPHP1-8\php\pear\

Invité
Invité n'ayant pas de compte PHPfrance

01 févr. 2007, 13:52

Ok, la connexion à la bdd fonctionne. J'essaye d'effectuer une requête et bien entendu, ça ne marche pas. Pas d'erreur, juste une page blanche.
$sql = "select * from add_pays";
$result = $db->query($sql);
// Always check that $result is not an error
if (DB::isError($result)) {
 die ($result->getMessage());
}

while ($result->fetchInto($row)) {
 $id = $row[0];
}


$db->disconnect();
Habitués bienvenus pour un conseil...

ViPHP
ViPHP | 1961 Messages

01 févr. 2007, 13:54

Bonjour,

Tout est dit dans le message d'erreur
include_path='.;C:\PROGRA~1\EASYPH~1\\php\pear\'
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Invité
Invité n'ayant pas de compte PHPfrance

01 févr. 2007, 14:49

salut! tout d'abord merci de prêter attention à mon cas.
En suivant le post depuis le début, tu verras qu'en fait le problème de chemin et de placement des packages a été réglé. Je n'ai plus de pb avec l'erreur dont tu parles.

J'en suis au stade de tester une requête. La connexion est bien établie avec la bdd, mais la requête n'affiche rien, même pas une erreur. C'est ça que je ne comprends pas. Voici mon code en entier pour la bdd:
<?php
require_once 'DB.php';

$user = 'admin';
$passwd = 'monPassword';
$mysqlServer = 'localhost';
$dataBaseName ='afimmo';
$dsn ='mysql://'.$user.':'.$passwd.'@'.$mysqlServer.'/'.$dataBaseName;
$db =& DB::connect($dsn);
if (DB::isError($db)) {
    echo 'Message Standard         : ' . $db->getMessage() . "\n";
    echo 'Message DBMS/Utilisateur : ' . $db->getUserInfo() . "\n";
    echo 'Message DBMS/D&eacute;boguage   : ' . $db->getDebugInfo() . "\n";
    exit;
	
	}
 echo 'la connexion a reussie' ; 


$sql = "select * from add_pays";
$result = $db->query($sql);
// Always check that $result is not an error
if (DB::isError($result)) {
 die ($result->getMessage());
}

while ($result->fetchInto($row)) {
 $id = $row[0];
}


$db->disconnect();

?>

Invité
Invité n'ayant pas de compte PHPfrance

01 févr. 2007, 14:52

problème réglé, il manquait un echo dans la boucle while en fin de script. merci!