[PHP]petit problème incompréhensible

Répondre
Partager Rechercher
Bonjour a tous,

Je me remet un peu a coder en ce moment et voila que j'ai un problème que je n'arrive pas a comprendre
J'ai une erreur ligne 14, hors, j'ai vérifier les globals sont bien autorisées chez mon hébergeur quand je place directement ligne 23 les identifiants il refuse de me connecter aussi... J'ai vérifier PDO est aussi autorisé chez mon hébergeur!
Bien évidement le fichier config est inclut avant le fichier Bddmysql.class.php

Je m'en remet a vous car la je ne vois pas trop où est mon erreur

Code PHP:

 Fichier : Bddmysql.class.php 
<? 
12 
class mydb {
    
14    protected $hostname $GLOBALS['SQL_SERVER'];
15    protected $username $GLOBALS['SQL_LOGIN'];
16    protected $password $GLOBALS['SQL_PASSWORD'];
17    protected $bdn $GLOBALS['SQL_DATABASE'];
    
19    protected $show_sql $GLOBALS['SHOW_SQL'];
20    protected $show_sql_er $GLOBALS['SHOW_SQL_ERRORS'];
    
    
/*** Ouvre une database ***/    
23    public $dbc = new PDO("mysql:host=".$hostname.";dbname=".$bdn.",".$username.",".$password."");

    
/*** Inserer dans une database ***/
    
function q_insert($table$champ$valeur) {
        
$dbc->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        
$sql "INSERT INTO "dbc->quote($tablePDO::PARAM_STR)"(".dbc->quote($champPDO::PARAM_STR).") VALUES (".$dbc->quote($valeurPDO::PARAM_STR).")";
        
$count $dbc->exec($sql);
        return 
$count
        
if ($show_sql_er TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode(); die; } } }
        if (
$show_sql TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode()'<br /> REQ SQL:'$sql; die; } } }
    }
    
    
/*** Selectionner d'une data base  ***/
    
function q_select($table$champ$autre) {
        
$dbc->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        if isset(
$autre) { $sql "SELECT "$champ" FROM "$table" "$autre""; }
        else { 
$sql "SELECT "$champ" FROM "$table""; }
        
$dbc->query($sql) = $row;
           return 
$row;
        if (
$show_sql_er TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode(); die; } } }
        if (
$show_sql TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode()'<br /> REQ SQL:'$sql; die; } } }
    }
    
    
/*** Update d'une data base ***/
    
function q_update($table$champ$ex$nv) {
        
$dbc->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        
$sql "UPDATE $table SET "$champ."='".$ex."' WHERE "$champ."='".dbc->quote($nvPDO::PARAM_STR)."'";
        
$count $dbh->exec($sql);
        return 
$count;
        if (
$show_sql_er TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode(); die; } } }
        if (
$show_sql TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode()'<br /> REQ SQL:'$sql; die; } } }
    }
    

    
/*** Nombre de valeurs ***/
    
function q_val($table$champ) {
        
$dbc->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        
$sql "SELECT COUNT(".$champ.") FROM "$table."";
        
$count $dbc->exec($sql);
        return 
$count;
        if (
$show_sql_er TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode(); die; } } }
        if (
$show_sql TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode()'<br /> REQ SQL:'$sql; die; } } }
    }

    
/*** Nombre de valeurs distinctes ***/
    
function q_vald($table$champ) {
        
$dbc->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
        
$sql "SELECT COUNT(DISTINCT "$champ.") FROM "$table;
        
$count $dbc->exec($sql);
        return 
$count;
        if (
$show_sql_er TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode(); die; } } }
        if (
$show_sql TRUE) { catch(Exception $e) { echo 'Erreur : '.$e->getMessage().'<br /> N° : '.$e->getCode()'<br /> REQ SQL:'$sql; die; } } }
    }
    
$dbc null;
}
?>
Code PHP:

 Fichier : config.php
<?
/** Les identifiants Mysql **/
$GLOBALS['SQL_SERVER'] = 'localhost';
$GLOBALS['SQL_LOGIN'] = 'root';
$GLOBALS['SQL_PASSWORD'] = '';
$GLOBALS['SQL_DATABASE'] = 'jj_la_carote';


// Afficher les requetes Sql debug mode
$GLOBALS['SHOW_SQL'] = FALSE;
// Afficher les erreurs Sql
$GLOBALS['SHOW_SQL_ERRORS'] = TRUE;


//Nom du serveur 
$GLOBALS['SERVER_NAME'] = $_SERVER['HTTP_HOST'];
$GLOBALS['RACINE'] = $_SERVER['DOCUMENT_ROOT'].'';
$GLOBALS['ADRESSE'] = 'http://'.$_SERVER['HTTP_HOST'];
?>
Oui ça aussi j'ai vérifié

Non sérieusement je ne vois pas ce qui cloche :s
J'ai envoyé un mail a mon hébergeur pour vérifié que tout(php5, drivers pdo..) était bien installé sur la machine ou je suis...
Je me trompe peut etre mais $GLOBAL ne s'utilise pas comme ça. Il s'agit d'un equivalent automatique de "global".
Exemple:

Code PHP:

function privateScope() {
     global 
$config;
     return 
mysql_connect($config['host'], $config['login'],$config['password']);

}

$config = array();
$config['host'] = 'localhost';
$config['login'] = 'root';
$config['password'] = 'r00t';

$dbLink privateScope(); 
Avec $GLOBAL

Code PHP:

function privateScope() {
     return 
mysql_connect($GLOBAL['config']['host'], $GLOBAL['config']['login'],$GLOBAL['config']['password']);

}

$config = array();
$config['host'] = 'localhost';
$config['login'] = 'root';
$config['password'] = 'r00t';

$dbLink privateScope(); 

Sinon, essaye de remplacer tes globals par un define(), si c'est des valeurs fixes, c'est d'autant preferable.
Hello,


Dans mes souvenirs, je pense pas que tu puisse initialiser des propriétés avec des variable, pourquoi ne laisser ca au constructeur de ta classe ?

Fait attention à tes if où tu mets un = au lieu d'un ===, puis if(true === true) c'est pas très utile si tu veux mon avis, encore plus si elles sont placées après le "return".
Mon problème de global est réglé, en effet j'avais le souvenir qu'on pouvait utiliser les globals comme cela et j'ai vérifié sur google mais je me trompais et le site ma conforté dans mon erreur, je ne me fierai plus jamais à des forums communautaires pour le développement rien ne vaut php.net et ses bouquins

merci a vous
Désolé mais non. PHPFrance, pour ne citer que lui, est très utile. C'est un forum, ouvert à tous, donc oui, parfois, quelques erreurs s'y glissent, mais ça reste une aide non-négligeable quand on rencontre un problème.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés