By: oio
Date: 2005-08-18
Time: 16:19
|
unsupported object type
Salut,
Je bloque sur cette erreur, la connexion se fait bien a ma base mais :
TinyButStrong Error (MergeBlock [res]): The data source Id 'DB_mysql' is an unsupported object type. And the corresponding custom function 'tbsdb_DB_mysql_close' is not found.
ma fonction de connexion :
function connex($dsn, $options)
{
$db =& DB::connect($dsn, $options);
if (PEAR::isError($db))
{
die($db->getMessage());
}
else
return $db;
}
|
mon fichier :
$idcom=connex($dsn, $options);
$sql = // ma requete sql
$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate('templates/resultats.tpl') ;
$TBS->MergeBlock('res',$idcom,$sql) ;
deconnex($idcom);
$TBS->Show() ;
|
|
By: Skrol29
Date: 2005-08-18
Time: 17:34
|
Re: unsupported object type
Salut,
C'est parce que PEAR::DB n'est pas supporté en natif par TBS.
Tu dois utiliser un plug-in TBS d'accès au données.
Il s'agit de 3 fonctions que voici :
function tbsdb_peardb_open(&$Source,&$Query) {
global $db;
return $db->query($Query);
}
function tbsdb_peardb_fetch(&$Rs) {
$Row = $Rs->fetchRow(DB_FETCHMODE_ASSOC);
if (is_null($Row)) $Row = false;
return $Row;
}
function tbsdb_peardb_close(&$Rs) {
$Rs->free();
}
|
Ces fonctions correspondent au mot-clé 'peardb' pour la fonction MergeBlock().
Ton code sous TBS devient donc :
$TBS->MergeBlock('blk','peardb','select * from matable');
|
|
By: Skrol29
Date: 2005-08-18
Time: 17:36
|
Re: unsupported object type
Ces fonctions seront bientôt dispo dans la page support.
|
By: oio
Date: 2005-08-19
Time: 10:27
|
Re: unsupported object type
merci bien une fois de plus :)
|
By: oio
Date: 2005-08-19
Time: 11:05
|
Re: unsupported object type
hum j'include 'tbsdb_peardb.php' dans mon fichier
ensuite je remplace
$TBS->MergeBlock('res',$idcom,$sql) ;
par
$TBS->MergeBlock('res','peardb',$sql);
ma fonction de connexion restant inchangé.
Ca ne merge pas bien apparement :
TinyButStrong Error (Array value): Can't merge [res.Ville] because sub-item 'Ville' is not an existing key in the array. This message can be cancelled using parameter 'noerr'.
|
By: Skrol29
Date: 2005-08-19
Time: 11:58
|
Re: unsupported object type
Ca marchait bien pour moi.
Je viens de mettre un correctif sur ces fonctions afin que le message d'erreur PearDB soit affiché à l'ouverture de la requête. Le correctif est disponible dans la page Support.
Essau avec ça, sinon vérifie aussi la casse de tes nom de champ.
|
By: Skrol29
Date: 2005-08-19
Time: 12:03
|
Re: unsupported object type
Ha mais y' un autre truc.
dans le code des fonction, la variable de connexion s'appele $db.
Il faut la renommer en $idcom
|
By: oio
Date: 2005-08-19
Time: 12:06
|
Re: unsupported object type
Je n'ai pas d'erreur PEAR et la casse est bonne vu qu'avant que j'utilise PEAR::DB ca fonctionnait bien.
Vais chercher un petit peu parceque je comprend pas si ca marche pour toi ..
|
By: oio
Date: 2005-08-19
Time: 12:07
|
Re: unsupported object type
oui j'avais vu mais ca ne change pas le probleme
|
By: Skrol29
Date: 2005-08-19
Time: 12:21
|
Re: unsupported object type
J'ai utilisé PearDB 1.7.6, Pear 1.4.0a12
|
By: oio
Date: 2005-08-19
Time: 13:16
|
Re: unsupported object type
J'utilise la meme vers de PEAR::DB que toi.
Pour résumer le probleme :
<?php
include_once("includes/tbs_class_php5.php");
include_once("includes/tbsdb_peardb.php");
require_once 'DB.php';
$idcom = mysql_connect("localhost", "root", "xrfm3mjL");
$idbase=mysql_select_db("solidarites");
$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate('templates/resultats.tpl') ;
$TBS->MergeBlock('res',$idcom,'SELECT * FROM donateur WHERE donateur.Ville="paris"');
mysql_close($idcom);
$TBS->Show() ;
?>
|
Sans utiliser PEAR::DB ca fonctionne bien, j'ai bien mes resultats dans ma tpl.
Mais :
<?php
include_once("includes/tbs_class_php5.php");
include_once("includes/tbsdb_peardb.php");
require_once 'DB.php';
$dsn = array(
'phptype' => 'mysql',
'username' => 'root',
'password' => 'xxxxxxxxx',
'hostspec' => 'localhost',
'database' => 'xxxxxx',
);
$options = array(
'debug' => 2,
'portability' => DB_PORTABILITY_ALL,
);
$idcom = DB::connect($dsn, $options);
f (PEAR::isError($idcom))
{
die($idcom->getMessage());
}
$TBS = new clsTinyButStrong ;
$TBS->LoadTemplate('templates/resultats.tpl') ;
$TBS->MergeBlock('res','peardb','SELECT * FROM donateur WHERE donateur.Ville="paris"');
$idcom->disconnect();
$TBS->Show() ;
?>
|
ne merge pas.
|
By: oio
Date: 2005-08-19
Time: 13:32
|
Re: unsupported object type
Voila j'ai trouvé ca foire si dans les options de connect y a :
'portability' => DB_PORTABILITY_ALL
Je l'ai enlevé ca fonctionne bien, je te remercie de ton aide Skrol29 !
|
By: Skrol29
Date: 2005-08-19
Time: 14:47
|
Re: unsupported object type
As-tu essayé
$db = DB::connect($dsn, $options);
au lieu de
$idcom = DB::connect($dsn, $options);
?
Je viens de tester les fonctions sous PHP5, et ça marche toujours correctement pour moi.
Sinon il faut faire du debuging et malheusement je ne peux pas le faire à distance. Essaye d'insérer un :
echo input_r($Row).'<br><br>';
dans la fonction tbsdb_peardb_fetch(), juste avant le return, afin de voir s'il récupère correctement les données.
|
By: oio
Date: 2005-08-19
Time: 15:17
|
Re: unsupported object type
C'est bon c'est réglé voir post ci dessous merci ;)
|
|
Posting in progress.
Please wait...
|