Wenn Sie zu PDO wechseln, können Sie genauso gut vorbereitete Anweisungen und Parameterbindungen nutzen. Es macht Ihre Abfragen tatsächlich viel sicherer vor SQL-Injection und macht Ihren Code auch lesbarer. Ihr Abfragegenerator Ansatz kompliziert die Dinge ein wenig, aber es ist immer noch möglich. Ich würde auch dringend empfehlen, die Fehlerberichterstattung während der Entwicklung zu aktivieren. Zum Beispiel
error_reporting(E_ALL);
ini_set('display_errors', 'On');
$upd = array('name = :name', 'type = :type');
$values = array(
'name' => $name,
'type' => $type,
'ride_id' => $ride_id,
'park_id' => $park_id
);
if (!empty($topride)) {
$upd[] = 'top_ride = :topride'; // :topride is the named parameter placeholder
$values['topride'] = $topride; // the array key matches the named placeholder above
}
if (!empty($info)) {
$upd[] = 'info = :info';
$values['info'] = $info;
}
// and so on
$query = sprintf('UPDATE tpf_rides SET %s WHERE ride_id = :ride_id AND park_id = :park_id',
implode(', ', $upd));
$stmt = $pdo->prepare($query);
$stmt->execute($values);