2010-05-16 5 views
2

J'essaie de construire une classe PHP pour vérifier le nom d'utilisateur et mot de passe dans MySQL. Je reçois "mysql_query(): argument fourni est pas une ressource MySQL-Link valide dans D: \ 2010Portfolio \ le football \ main.php sur la ligne 38" base de données contient des erreurs: » un messageClasse PHP Question

Quand je me déplace. mon code userQuery sort de ma classe, il fonctionne correctement, seulement s'il se trouve dans ma classe Je ne sais pas si le problème est que je ne construis pas la connexion à mysql dans ma classe ou pas. ! Voici mon code

<?php 
    $userName=$_POST['userName']; 
    $userPw=$_POST['password']; 

    class checkUsers { 
     public $userName; 
     public $userPw; 
     function checkUsers($userName='', $userPw=''){ 
     $this->userName=$userName; 
     $this->userPw=$userPw; 
     } 
     function check1(){ 

     if (empty($this->userName) || empty($this->userPw)){ 

       $message="<strong>Please Enter Username and Password</strong>"; 

     }else{ 
//line 38 is next line 
     $userQuery=mysql_query("SELECT userName, userPw FROM user WHERE 

userName='$this->userName' and userPw='$this->userPw'", $connection); 

         if (!$userQuery){ 
       die("database has errors: ". mysql_error()); 
      } 
      if(mysql_num_rows($userQuery)==0){ 
     $message="Please enter valid username and password"; 
     } 
     }//end empty check 

     return $message; 

     }//end check1 method 

     }//end Class 

     $checkUser=new checkUsers($userName, $userPw); 
     echo $checkUser->check1(); 




     ?> 

Je vous remercie de toute aide !!!!

Répondre

3

Le problème est que votre méthode ne peut pas voir l'objet de connexion. Soit utiliser global (

global $connection; 

dans la définition de la méthode (mauvaise idée en général) ou essayez d'aller avec une connexion de base de données singleton (exemples de code peuvent être trouvés sur le Web).

+0

Je vois que vous remercier. – FlyingCat

1

Il est l'interprétation $connection comme variable locale dans votre fonction check1().

d'examen des docs pour variable scope. vous avez probablement définir global $connection dans votre fonction.

+0

T Rings pour la réponse. – FlyingCat