sql >> Databasteknik >  >> RDS >> Mysql

Ändra php-skript till PDO orsakar syntaxfel under MySQL-uppdateringsfråga

Om du ska byta till PDO kan du lika gärna dra nytta av förberedda uttalanden och parameterbindning. Det gör faktiskt dina frågor mycket säkrare från SQL-injektion och gör också din kod mer läsbar. Din frågebyggare tillvägagångssätt komplicerar saker lite men det är fortfarande möjligt. Jag rekommenderar också starkt att du aktiverar felrapportering under utveckling. Till exempel

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



  1. Använda SQL Server Profiler | SQL Server Performance Felsökning -5

  2. Lagra och hämta bildsökväg i databasen mysql php

  3. Hur lagrar du säkert en användares lösenord och salt i MySQL?

  4. Välj sats REF oracle