CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
20.02.2009, 22:37:28
|
Anfänger
|
|
Registriert seit: Mar 2007
Beiträge: 40
|
|
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_SERVER, DB_USER, DB_PASS, DB_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?
Geändert von key323 (20.02.2009 um 22:49:51 Uhr)
|
20.02.2009, 22:57:28
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: mysqli Problem
Es sind Folgefehler. Ich würde vermuten, daß $sUsername nicht übergeben wird.
|
20.02.2009, 23:02:12
|
Anfänger
|
|
Registriert seit: Mar 2007
Beiträge: 40
|
|
AW: mysqli Problem
Hallo,
$sUsername wird definitiv übergeben.
Gruß
key
|
20.02.2009, 23:07:05
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
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.
Geändert von urvater (20.02.2009 um 23:07:49 Uhr)
|
20.02.2009, 23:10:27
|
Anfänger
|
|
Registriert seit: Mar 2007
Beiträge: 40
|
|
AW: mysqli Problem
Die Fehler werden leider noch genauso angezeigt...
|
20.02.2009, 23:11:35
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: mysqli Problem
Die Klasse, die __construct enthält ist aber geladen worden oder?
|
20.02.2009, 23:12:53
|
Anfänger
|
|
Registriert seit: Mar 2007
Beiträge: 40
|
|
AW: mysqli Problem
Ja, die Klasse wurde geladen.
|
20.02.2009, 23:20:41
|
|
Senior Member
|
|
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 56
Beiträge: 1.044
|
|
AW: mysqli Problem
Also kann ich nur noch auf TBL_USERS tippen. Für mehr reicht der vorhandene Code nicht aus.
|
20.02.2009, 23:23:42
|
Anfänger
|
|
Registriert seit: Mar 2007
Beiträge: 40
|
|
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_SERVER, DB_USER, DB_PASS, DB_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);
}
}
}
?>
|
20.02.2009, 23:29:30
|
SELFPHP Experte
|
|
Registriert seit: Jun 2008
Alter: 16
Beiträge: 2.269
|
|
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-> ??
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Hybrid-Darstellung
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 03:50:48 Uhr.
|