Hab gerade mal drüber geguckt - den parse error hab ich hier nicht feststellen können.
Aber hab da was verdreht
Erst query string zusammen stellen, dann ->prepare
PHP
function kategorien($mysqli, $offset=false, $limit=false) {
// erste query string zusammen stellen
$query = "
SELECT pk_id, pk_titel, pk_label, pk_status
FROM kategorien
ORDER BY pk_titel ASC
";
if($limit !== false) { // wenn limit angegeben, dann wird LIMIT ? angehangen
$query .= " LIMIT ?";
}
if($offset !== false) { // wenn offset angegeben, dann wird OFFSET ? angehangen
$query .= " OFFSET ?";
}
// dann stmt erzeugen
$stmt = $mysqli->prepare($query);
if($limit !== false) {
$stmt->bind_param("i", (int)$limit);
}
if($offset !== false) {
$stmt->bind_param("i", (int)$offset);
}
// ausführen
$stmt->execute();
$stmt->bind_result($pk_id, $pk_titel, $pk_label, $pk_status);
$stmt->store_result();
if($stmt->num_rows() > 0) {
while ($stmt->fetch()) {
$kategorien[] = array(
'pk_id' => $pk_id,
'pk_titel' => $pk_titel,
'pk_label' => $pk_label,
'pk_status' => $pk_status
);
}
return $kategorien;
}
}
Alles anzeigen
Aber -- zu meiner Verteidigung -- Du musst ja auch Fehler finden/deuten können
Wie Du das machst ist relativ egal, solange es funktioniert und überschaubar ist.
Es passiert nicht selten, dass man fertige Funktionen erweitern will und die dann aber neu schreibt, weil die verwendete Art und Weise nicht mehr passt.