2016-06-23 12 views
1

Im Folgenden finden Sie den Code ein:mysqli_query() erwartet, dass Parameter 1 mysqli, null ist. verbindungs ​​var Definition für ganze Klasse

class CONNECTOR { 
private static $USER="USER"; 
private static $PASS="PASS"; 
private static $SERVER="SERVER"; 
public static $CONN; 

public function __construct() { 
       $CONN=mysqli_connect(self::$SERVER, self::$USER, self::$PASS); 
    mysqli_select_db($CONN,self::$DB) or die(mysqli_error($CONN)); 
} 
public static function checkLogin($u){ 
    $q="SELECT * FROM users WHERE username='".$u."';"; 
    $r=mysqli_query($CONN,$q) or die(mysqli_error($CONN)); 
    if(mysqli_num_rows($CONN,$r)==1){ 
     return true; 
    } else { 
     return false; 
    } 
}} 

Und wenn ich diese laufen, Warnung kommt ‚null gegeben‘ wie $ CONN nicht in allen Funktionen definiert ist.

Also sollte ich $ CONN in jeder Funktion definieren? Gibt es keine Möglichkeit, $ CONN zu definieren, die für die gesamte Klasse verwendet werden können?

+0

versuchen 'var_dump ($ CONN); sterben() 'um zu überprüfen, ob es null ist oder nicht, nach der Initialisierung ... –

Antwort

1

Sie mysql und mysqli

Mischen haben Sie Verbindung wie folgt zu verwenden.

$CONN=mysqli_connect(self::$SERVER, self::$USER, self::$PASS,self::$DB); 
+0

wo? in __construct Funktion? Ich habe versucht global, aber gescheitert. Ich möchte $ CONN für checkLogin-Funktion definieren. – Ajit

+0

ja relpace Ihre $ CONN = mysqli_connect (Selbst :: $ SERVER, Selbst :: $ USER, Selbst :: $ PASS); mysqli_select_db ($ CONN, self :: $ DB) oder sterben (mysqli_error ($ CONN)); mit meiner Antwort. –

+0

Diese Antwort ist falsch und irreführend. Wer es aufgestuft hat, sollte ihre Stimme zurücknehmen. –

Verwandte Themen