Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Das Ändern des PHP-Skripts in PDO verursacht einen Syntaxfehler während der MySQL-Update-Abfrage

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