Problème compatibilité PHP4 et PHP5
Bonjour,
Je tente la migration MySQL 3.23 PHP4 vers PHP5 et MySql5.
J'ai un problème sur une fonction dont les variables sont envoyés d'une certaine manière.
Voici un exemple concret, variable à suivre : $query ($str_query dans la fonction du dessous).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| if (!res_setSearchQuery($query = '')) //requête de recherche
{
err_set(__FILE__, __LINE__);
return SHARED_FALSE;
}
$res = false;
if (!$res = mysql_query($query)) //extrait les infos des lots et agence, pas tarifs
{
db_mysql_trace($dg);
$dg['query'] = $query;
err_set(__FILE__, __LINE__, 'ERR_MYSQL_QUERY', $dg);
return SHARED_FALSE;
} |
Il semblerait que la fonction res_setSearchQuery renvoie vrai alors que la variable $query reste vide.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| function res_setSearchQuery(&$str_query)
{
static $_f = 'res_setSearchQuery';
if (!res_setSyndStr($syndstr = '')) //ids agences d'un syndicat
{
err_set(__FILE__, __LINE__);
return SHARED_FALSE;
}
//lib_trace_var($_f, 'syndstr', $syndstr);
$vn_searchtype = $vn_net_id = $vn_agency_id = '';
$sharedstr = '';
$vn_searchtype = &$GLOBALS['vn_searchtype'];
$vn_net_id = &$GLOBALS['vn_net_id'];
$vn_agency_id = &$GLOBALS['vn_agency_id'];
$sharedstr = "SELECT lots.RefAgence,lots.No_Lot,lots.Ref_Lot,lots.No_Tarif,lots.Type_Bien,lots.Type_Caution,lots.Taux_Caution,lots.DateBlocage,lots.Lot_Bloque,lots.Nb_Couchages,lots.Surf_Totale,lots.AfficherPrixInternet,lots.Abattement,agence.RaisonSociale,agence.TauxAcompte,agence.TypeArrondi,agence.Mail,agence.MailFormat,agence.Adresse1,agence.Adresse2,agence.MenageIntegre FROM lots LEFT JOIN agence ON agence.RefAgence=lots.RefAgence";
//
//Recherche par le formulaire client (pour les sites clients)
//
if($_POST['searchtype'] == 'form_client')
{
//echo "Formulaire client";
$_SESSION['agency_id'] = $_POST['RefAgence'];
$str_query = "$sharedstr WHERE (lots.RefAgence = '".$_POST['RefAgence']."'";
res_setCritStr($critstr = '');
if (!lib_emp_str($critstr))
$str_query .= " AND $critstr";
$str_query .= ')';
}
else ... je coupe la |
Ce code se répète avec des else et si aucun cas de $_POST['searchtype'] n'est accepté une erreur est renvoyé sinon ca renvoie vrai.
Donc théoriquement pour arriver jusqu'à l'exécution de $res = mysql_query($query) $query ne peux pas être vide.
Pourtant il l'est d'après l'erreur retourné par MySQL. J'en déduis que la méthode par référence utilisé pour le transfert du contenu de la variable $query n'est plus supporté avec PHP5 ?
Merci