Hallo,
Müsste ich jetzt um ganz sicher zu gehen diese zweite Select Abfrage auch wieder mit Prepared Statements machen, oder kann da eigentlich nichts passieren?
Wenn das tatsächlich immer nur eine Zahl ist und sie wirklich nur aus der DB selbst kommt, dann kann nichts passieren, wenn Du es direkt reinschreibst.
ABER: Ich würde das dennoch über Prepared Statements machen. Einfach aus dem Grund, es konsistent in der ganzen Anwendung so zu haben. Man kopiert sich nämlich immer mal wieder Codeschnipsel von einer Stelle an die andere oder lagert Code aus etc. - und dann kannst Du Dir wenn Du nicht genau aufpasst auf diese Weise Sicherheitslücken einhandeln.
Daher: Nimm *immer* Prepared Statements und Du sparst Dir eine Menge Ärger. Wenn Du Dir das ganze etwas kürzer halten willst, kannst Du Dir ja eine Hilfsfunktion schreiben, à la:
function dbQuery ($db, $query, $params = array ()) {
$sth = $db->prepare ($query);
foreach ($params as $name => $value) {
$sth->bindParam($name, $value);
}
return $sth->execute () ? $sth : false;
}
Aufrufen kannst Du das ganze dann über:
$sql = dbQuery ($DBO, "SELECT max(CHAR_LENGTH(Name)) as Anzahl FROM jobsetting WHERE UserID = :userid", array (":userid" => $UserID));
(Nur als Vorschlag, kann man natürlich beliebig abwandeln.)
Viele Grüße,
Christian