Cyperfriend
Der ohne Avatar
- Registriert
- 14 Juli 2013
- Beiträge
- 1.123
Nachdem mir von eure Seite PDO sehr ans Herz gelegt wurde, wollte ich das bei einem Projekt auch entsprechend anwenden. Leider stolpere ich gleich bei der ersten Abfrage, bei der es darum geht die Anzahl Datensätze zu ermitteln, bzw. zu Prüfen, ob ein Datensatz bereits vorhanden ist.
Hier der Code:
[src=php]
# Diese Datei enthält Funktionen, welche für das Script zwingend benötigt werden.
require_once("../../functions.inc.php");
# Diese Datei enthält die Fehlercodes.
require_once("../../codes.php");
# Datenfankverbindung herstellen
$db_connect = db_connect();
[...]
# Prüfen, ob der Benutzername bereits angelegt wurde
$db_read = $db_connect->query('select count * from db_benutzer where benutzername='.$_POST['Benutzername']);
$anzahl = $db_read->fetchColumn();
# Falls ein Eintrag gefunden wurde, Vorgang abbrechen
if($anzahl >= 1){
# Code 21 = "Diesen Benutzer gibt es bereits"
$_SESSION['code'] = 21;
header("Location: http://".$_SERVER['HTTP_HOST']."/settings/users/show.php"); exit;
}[/src]
Der Code soll laut RapidPHP in Ordnung sein, also keine Syntaxfehler. Trotzdem gibt es beim Aufruf dann folgenden Fehler:
[Edit] Hier noch die Verbindung zur Datenbank:
[src=php]# Datenbankinformationen
function db_connect(){
try {
$db = new PDO('mysql:host=*****;dbname=*****;charset=UTF8','*****','*****');
}
catch(PDOException $e){
echo 'Fehler bei der Datenbankverbindung' . $e->getMessage();
}
}[/src][/Edit]
Jemand einen Vorschlag, wie's richtig ist?
Hier der Code:
[src=php]
# Diese Datei enthält Funktionen, welche für das Script zwingend benötigt werden.
require_once("../../functions.inc.php");
# Diese Datei enthält die Fehlercodes.
require_once("../../codes.php");
# Datenfankverbindung herstellen
$db_connect = db_connect();
[...]
# Prüfen, ob der Benutzername bereits angelegt wurde
$db_read = $db_connect->query('select count * from db_benutzer where benutzername='.$_POST['Benutzername']);
$anzahl = $db_read->fetchColumn();
# Falls ein Eintrag gefunden wurde, Vorgang abbrechen
if($anzahl >= 1){
# Code 21 = "Diesen Benutzer gibt es bereits"
$_SESSION['code'] = 21;
header("Location: http://".$_SERVER['HTTP_HOST']."/settings/users/show.php"); exit;
}[/src]
Der Code soll laut RapidPHP in Ordnung sein, also keine Syntaxfehler. Trotzdem gibt es beim Aufruf dann folgenden Fehler:
Der Fehler taucht in der Zeile $db_read = $db_connect auf.Fatal error: Uncaught Error: Call to a member function query() on null in [...]
[Edit] Hier noch die Verbindung zur Datenbank:
[src=php]# Datenbankinformationen
function db_connect(){
try {
$db = new PDO('mysql:host=*****;dbname=*****;charset=UTF8','*****','*****');
}
catch(PDOException $e){
echo 'Fehler bei der Datenbankverbindung' . $e->getMessage();
}
}[/src][/Edit]
Jemand einen Vorschlag, wie's richtig ist?
Zuletzt bearbeitet: