Hallo,
ich habe festgestellt, dass ich sehr oft prüfen muss, ob ein einzelne bestimmte Werte bereits in bestimmten Tabellen vorhanden sind.
Damit ich dafür nicht immer 3-4 Zeilen Code tippen muss, möchte ich das mit einer Funktion lösen.
Das Problem ist, dass ich in Prepared Statements den Tabellenname nicht variabel machen kann, wie ich bereits rausgefunden haben.
Meine Funktion sollte so wie unten aussehen, aber :table ist ja leider nicht möglich.
Deswegen wollte ich hier mal nach Alternativen fragen.
Dazu möchte ich noch erwähnen, dass der Tabellenname sowie Spaltenname immer von mir definiert wird.
Das einzige was vom User an die Funktion übergeben werden soll, ist der Wert auf den geprüft werden soll.
Vielleicht brauche ich dann garnicht unbedingt prepared Statements?
Die Funktion wie ich sie mir gewünscht hätte:
So könnte man sie aufrufen.
Danke schonmal
Grüße
Edit: Wieso wurden nach dem Absenden des Themas die Zeilenumbrüche aus meinem Code entfernt?
ich habe festgestellt, dass ich sehr oft prüfen muss, ob ein einzelne bestimmte Werte bereits in bestimmten Tabellen vorhanden sind.
Damit ich dafür nicht immer 3-4 Zeilen Code tippen muss, möchte ich das mit einer Funktion lösen.
Das Problem ist, dass ich in Prepared Statements den Tabellenname nicht variabel machen kann, wie ich bereits rausgefunden haben.
Meine Funktion sollte so wie unten aussehen, aber :table ist ja leider nicht möglich.
Deswegen wollte ich hier mal nach Alternativen fragen.
Dazu möchte ich noch erwähnen, dass der Tabellenname sowie Spaltenname immer von mir definiert wird.
Das einzige was vom User an die Funktion übergeben werden soll, ist der Wert auf den geprüft werden soll.
Vielleicht brauche ich dann garnicht unbedingt prepared Statements?
Die Funktion wie ich sie mir gewünscht hätte:
PHP-Code:
<?php
function entrycheck($table, $column, $checkvalue, $pdo) {
$check = $pdo->prepare("SELECT * FROM :table WHERE :column = :checkvalue");
$checkresult = $check->execute(array(
'table' => $table,
'column' => $column,
'checkvalue' => $checkvalue
));
$check2 = $check->fetch();
if(!$check2) {
return "false";
} else {
return "true";
}
}
?>
So könnte man sie aufrufen.
PHP-Code:
<?php
$table = "user";
$column = "username";
$checkvalue = $_GET['username'];
$usercheck = entrycheck($table, $column, $checkvalue, $pdo);
if($usercheck == false) {
//z.B. Testuser registrieren
} else {
echo "Benutzername bereits vergeben";
}
?>
Danke schonmal
Grüße
Edit: Wieso wurden nach dem Absenden des Themas die Zeilenumbrüche aus meinem Code entfernt?
Kommentar