PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP Grundlagen (http://www.selfphp.de/forum/forumdisplay.php?f=12)
-   -   mysqli Problem (http://www.selfphp.de/forum/showthread.php?t=20992)

key323 20.02.2009 23:37:28

mysqli Problem
 
Hallo,
ich versuche mit MySQLi eine Abfrage zu machen, bekomme allerdings einige Warnings zurück:

Code:

Warning: mysqli_prepare() expects parameter 1 to be mysqli, null given in /is/htdocs/wp1086781_6J2R3JYS04/www/includes/classes/SessionController.inc.php on line 52

Warning: mysqli_bind_param() expects parameter 1 to be mysqli_stmt, null given in /is/htdocs/wp1086781_6J2R3JYS04/www/includes/classes/SessionController.inc.php on line 53

Warning: mysqli_execute() expects parameter 1 to be mysqli_stmt, null given in /is/htdocs/wp1086781_6J2R3JYS04/www/includes/classes/SessionController.inc.php on line 54

Warning: mysqli_stmt_close() expects parameter 1 to be mysqli_stmt, null given in /is/htdocs/wp1086781_6J2R3JYS04/www/includes/classes/SessionController.inc.php on line 55

Warning: mysqli_close() expects exactly 1 parameter, 0 given in /is/htdocs/wp1086781_6J2R3JYS04/www/includes/classes/SessionController.inc.php on line 56

Hier der Teiel Code:
PHP-Code:

function __construct() {
...
$connection mysqli_connect(DB_SERVERDB_USERDB_PASSDB_NAME);
...
}
function 
checkLogin() {
...
$stmt mysqli_prepare($connection'SELECT id FROM' TBL_USERS 'WHERE (username) VALUES (?)');
mysqli_bind_param($stmt's'$sUsername);
mysqli_execute($stmt);
mysqli_stmt_close($stmt);
mysqli_close();
...


Wie kommen diese Warnungen zustande?

Einen schönen Abend noch
key

Edit: Und gleich noch eine Frage, wie komme ich jetzt an mein Ergebnis?

urvater 20.02.2009 23:57:28

AW: mysqli Problem
 
Es sind Folgefehler. Ich würde vermuten, daß $sUsername nicht übergeben wird.

key323 21.02.2009 00:02:12

AW: mysqli Problem
 
Hallo,
$sUsername wird definitiv übergeben.

Gruß
key

urvater 21.02.2009 00:07:05

AW: mysqli Problem
 
PHP-Code:

'SELECT id FROM' TBL_USERS 'WHERE (username) VALUES (?)'

Hab gerade gesehen, daß der Select falsch geschrieben ist.
PHP-Code:

'SELECT id FROM ' TBL_USERS ' WHERE username = ?' 

So müsste er korrekt sein.

EDIT: Die Leerzeichen bei den ' nicht vergessen.

key323 21.02.2009 00:10:27

AW: mysqli Problem
 
Die Fehler werden leider noch genauso angezeigt...

urvater 21.02.2009 00:11:35

AW: mysqli Problem
 
Die Klasse, die __construct enthält ist aber geladen worden oder?

key323 21.02.2009 00:12:53

AW: mysqli Problem
 
Ja, die Klasse wurde geladen.

urvater 21.02.2009 00:20:41

AW: mysqli Problem
 
Also kann ich nur noch auf TBL_USERS tippen. Für mehr reicht der vorhandene Code nicht aus.

key323 21.02.2009 00:23:42

AW: mysqli Problem
 
das müsste eigentlich auch stimmen...

hier nochmal die komplette Klasse:

PHP-Code:

<?php
include ($_SERVER["DOCUMENT_ROOT"] . 'includes/Config.inc.php');
include_once (
'Validate.inc.php');

class 
SessionController {
    var 
$connection# Speichert die MySQLi Connection
    
var $time# Die aktuelle Zeit
    
var $logged_in# Ist der Benutzer bereits eingelogt?
    
var $sUserID# Secure ID
    
var $sUsername# Secure Username
    
var $sPassword# Secure Password
    
    
function __construct() {
        
# Verbindung zur Datenbank wird hergestellt und in $connection gespeichert.
        
$connection mysqli_connect(DB_SERVERDB_USERDB_PASSDB_NAME);

        
$this->time time();
        
$this->startSession();
        echo 
"Klasse ist geladen";
    }
    
    function 
startSession() {
        
# Die Session wird gestartet
        
session_start();
        
session_regenerate_id();
        
### TEST
        
$_SESSION['username'] = 'Henning';
           
$_SESSION['userid']   = '1';
           
### TEST
        
        # Die Session wird gestartet
        
$this->logged_in $this->checkLogin();
        
### TEST
        #var_dump ($this->logged_in);
        ### TEST
        
    
}
    
    function 
checkLogin() {
        global 
$connection;
        
$validate = new Validate();
            
        if(isset(
$_SESSION['username']) && isset($_SESSION['userid'])) {
            
            
# Benutzereingaben prüfen
            
$sUsername $validate->validateUsername($_SESSION['username']);
            
$sUserID $validate->validateUserID($_SESSION['userid']);
            
            
#Prüfen ob Username und Userid in der Datenbank vorhanden sind...
            
$stmt mysqli_prepare($connection'SELECT id FROM ' TBL_USERS ' WHERE username = ?');
            
mysqli_bind_param($stmt's'$sUsername);
            
mysqli_execute($stmt);
            
mysqli_stmt_close($stmt);
            
mysqli_close($stmt);
        }
    }
}
?>


DokuLeseHemmung 21.02.2009 00:29:30

AW: mysqli Problem
 
Dann will ich euch mal die Fehlermeldung übersetzen:
Zitat:

mysqli_prepare() expects parameter 1 to be mysqli, null given
Übersetzung:
mysqli_prepare() erwartet als ersten Parameter eine mysqli Resource, aber es wird nur Null übergeben!


So, und jetzt etwas nachdenken....... hmmmm ......

Wozu das "global $connection;"?
PHP-Code:

$stmt mysqli_prepare($connection

Fehlt das nicht ein this-> ??


Alle Zeitangaben in WEZ +2. Es ist jetzt 09:10:19 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.