sql >> Database teknologi >  >> RDS >> Mysql

Ændring af php-script til PDO forårsager syntaksfejl under MySQL-opdateringsforespørgsel

Hvis du skal skifte til PDO, kan du lige så godt benytte dig af forberedte opgørelser og parameterbinding. Det gør faktisk dine forespørgsler meget sikrere mod SQL-injektion og gør også din kode mere læsbar. Din forespørgselsbygger tilgang komplicerer tingene lidt, men det er stadig muligt. Jeg vil også stærkt anbefale at aktivere fejlrapportering under udvikling. For eksempel

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. Automatisk indeksstyring i Azure SQL-database

  2. Hvordan viser jeg fejl for min MySQLi-forespørgsel?

  3. Bibliotek ikke indlæst:@rpath/libmysqlclient.21.dylib Årsag:billede blev ikke fundet Django-migreringsfejl ved brug af mysqlclient DB-driver og MySQL 8 med macOS

  4. SSL-forbindelsesfejl under brug af MySQL Connector med Python