sql >> Base de Datos >  >> RDS >> Mysql

Cambiar el script php a PDO causando un error de sintaxis durante la consulta de actualización de MySQL

Si va a cambiar a PDO, también puede aprovechar las declaraciones preparadas y el enlace de parámetros. De hecho, hace que sus consultas sean muchas más seguro de la inyección de SQL y también hace que su código sea más legible. Su generador de consultas El enfoque complica un poco las cosas, pero aún es posible. También recomiendo habilitar el informe de errores durante el desarrollo. Por ejemplo

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);