sql >> Database >  >> RDS >> Mysql

Wijzigen van php-script naar PDO waardoor syntaxisfout wordt veroorzaakt tijdens MySQL-updatequery

Als u gaat overschakelen naar PDO, kunt u net zo goed profiteren van voorbereide instructies en parameterbinding. Het maakt uw zoekopdrachten veel veiliger tegen SQL-injectie en maakt uw code ook leesbaarder. Uw querybouwer aanpak bemoeilijkt de zaken een beetje, maar het is nog steeds mogelijk. Ik zou ook ten zeerste aanbevelen om foutrapportage tijdens de ontwikkeling in te schakelen. Bijvoorbeeld

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. Spring Data JPA Auditing werkt niet voor de JpaRepository-updatemethode met @Modifying-annotatie, waarom?

  2. Oracle:Geparametriseerde query met IN-clausule retourneert null-waarde

  3. Array van Enum in Postgres met SQLAlchemy

  4. UPDATE-instructies maken met behulp van associatieve arrays in PHP