2015-12-29 1 views
0

Nous avons amélioré notre PHP de 5.3 à 5.6 et maintenant je reçois des erreurs et des avertissements. Im un peu confus sur ce que déconseillé de PHP 5.3 qui causerait cela.PHP Erreur fatale: Appel à une fonction membre getEntry() mis à jour php 5.3 à 5.6

PHP Warning: get_class() called without object from outside a class in /home/website/public_html/php/search.class.php on line 6 

PHP Warning: Creating default object from empty value in /home/website/public_html/favorites/favorite.class.php on line 25 

PHP Fatal error: Call to a member function getEntry() on a non-object in /home/website/public_html/php/search.class.php on line 43 

get_class L'avertissement

if(get_class($favorite) === false) 
    $favorite = new favorite; 

$commQuery est la ligne d'erreur fatale 43

class getCommDetails{ 
    var $community; 
    var $commURL; 
    var $commAddress; 
    var $commPhone; 
    var $cid; 
    var $commMin; 
    var $commMax; 

function getCommDetails($community){ 
    $ret = false; 
    if(get_class($db) === false) 
      $db = new DB(DB_SERVER, DB_USER, DB_PASS, DB_NAME); 
    $this->community = $community; 

    $commQuery = $db->getEntry('communities', '*', "communities.community =  '$this->community'"); 

    if($db->numrows($commQuery) === 1) { 
     $commResults = $db->fetch_array($commQuery); 
     $this->commURL = $commResults['url']; 
     $this->commAddress = $commResults['address']; 
     $this->commPhone = $commResults['sales_phone']; 
     $this->cid = $commResults['cid']; 
     $this->vars = $commResults; 

     //$this->commURL = $fpResults 
     $ret = true; 
    } 
    return $ret; 
} 
}; 

code de connexion de base de données

<?php 
class DB { 
// Class Variables 
var $connection; 
var $queryStr; 

// Class Constructor 
function DB($DB_Server, $DB_User, $DB_Pass, $DB_Name){ 
    $this->connection = mysqli_connect("$DB_Server", "$DB_User", "$DB_Pass","$DB_Name") or die("MySQL Connection Err: ". mysqli_error($this->connection)); 
    //mysql_select_db("$DB_Name") or die("MySQL DB Err: ".mysql_error()); 
} 

// Class Functions 
function addEntry($table, $fieldlist, $valuelist){ 
    $this->queryStr = "INSERT INTO `". $table ."` ($fieldlist) VALUES ($valuelist)"; 
    return $this->query($this->queryStr); 
} 

function updateEntry($table, $fieldvalues, $where = NULL){ 
    if(is_array($fieldvalues)){ 
     $c=0;$numFields=count($fieldvalues); 
     foreach($fieldvalues as $fieldname => $value){ 
      if($fieldname == 'inventoryAction'){ 
       $c++; 
       continue; 
      } 
      $fieldvaluelist .= $fieldname."='".$value."'"; 
      if($numFields > 1){ 
       if($c < $numFields-1) 
        $fieldvaluelist .= ","; 
      } 
      $c++; 
     } 
    } else { 
     return false; 
    } 
    $this->queryStr = "UPDATE `". $table ."` SET ".$fieldvaluelist; 
    if($where !== NULL) 
     $this->queryStr .= " WHERE $where"; 
    return $this->query($this->queryStr); 
} 

function removeEntry($table, $where = NULL){ 
    if($where != NULL){ 
     $this->queryStr = "DELETE FROM `". $table ."` WHERE $where"; 
     return $this->query($this->queryStr); 
    } else { 
     return false; 
    } 
} 

    function getEntry($table, $fieldlist, $where=NULL, $whereon=NULL, $groupby = NULL){ 
    $this->queryStr = "SELECT $fieldlist FROM ".$table; 
    if($whereon !== NULL) 
     $this->queryStr .= " ON $whereon"; 
    if($where !== NULL) 
     $this->queryStr .= " WHERE $where"; 
    if($groupby !== NULL) 
     $this->queryStr .= " GROUP BY $groupby"; 

    return $this->query($this->queryStr); 
} 

function fetch_array($qResults, $recordType = NULL){ 
    if($recordType == "MYSQL_NUM"){ 
     return mysqli_fetch_array($qResults, MYSQL_NUM); 
    } elseif($recordType == "MYSQL_ASSOC"){ 
     return mysqli_fetch_array($qResults, MYSQL_ASSOC); 
    } else { 
     return mysqli_fetch_array($qResults); 
    } 
} 

function fetch_object($qResults){ 
    return mysqli_fetch_object($qResults); 
} 

function numrows($qResults){ 
    if(!$qResults) 
     return false; 
    else 
     return mysqli_num_rows($qResults); 
} 

function getLastID(){ 
    return mysqli_insert_id($this->connection); 
} 

function getQuery(){ 
    return $this->queryStr; 
} 

function query($query){ 
    if(!$query) 
     return false; 
    else 
     return mysqli_query($this->connection,$query); 
} 
}; 
?> 
+0

Je vos avertissements, mis en forme fixe une partie de votre capital et vous a fait l'audace cohérente. Vous devriez essayer de réduire une partie de votre code aux points pertinents cependant. – zero298

+0

Pour savoir pourquoi vous voyez certaines de ces erreurs, '$ db' n'est pas défini dans la portée de la fonction au moment où vous utilisez' get_class() '. Dans votre ancienne configuration, vous n'avez peut-être pas eu error_reporting jusqu'à E_ALL, car cela aurait généré 'E_NOTICE variable non définie $ db'. L '"objet par défaut de la valeur vide" arrive maintenant parce que si vous avez eu error_reporting à E_ALL, avant 5.4 il n'a pas inclus les avertissements E_STRICT, mais plus tard. C'est une violation stricte. http://stackoverflow.com/questions/8900701/creating-default-object-from-empty-value-in-php –

Répondre

1

Supprimer état

if(get_class($db) === false) 

Essayez d'écrire sans si:

 $db = new DB(DB_SERVER, DB_USER, DB_PASS, DB_NAME); 
+0

Ça a marché! Je vous remercie! – user3369825