Si vous envisagez de passer à PDO, vous pouvez également tirer parti des instructions préparées et de la liaison de paramètres. Cela rend en fait vos requêtes beaucoup plus sûr de l'injection SQL et rend également votre code plus lisible. Votre générateur de requêtes approche complique un peu les choses mais c'est toujours possible. Je recommande également fortement d'activer le rapport d'erreurs pendant le développement. Par exemple
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);