Ein Array löschen, das nicht mit PDO SQL funktioniert?

Aug 26 2020

Es ist 3 Stunden her, dass ich versuche, eine Zeile in MySQL basierend auf einer ID zu löschen ... Scheint einfach, oder?

Berücksichtigt man, dass das Array möglicherweise mehrere Werte enthält: $ result = Array ([3] => 4_Couture)

Array ( [3] => 4_Couture )
$sql_delete = "DELETE FROM users_resumes WHERE id_training_key = ? ";
$stmt_delete= $pdo->prepare($sql_delete); foreach($result as $r) { $stmt_delete->execute($r);
    }

Das scheint richtig zu sein, nein? Fehler: PDOStatement :: execute () erwartet, dass Parameter 1 Array ist, Zeichenfolge angegeben

Jeder, jeder, jeder Hinweis ist sehr willkommen! Vielen Dank aus Frankreich!

Antworten

4 Phil Aug 26 2020 at 08:42

Angenommen, es $resulthandelt sich um ein eindimensionales Array wie

$result = [ 3 => '4_Couture' ];

Das bedeutet, dass Sie versuchen, $stmt->execute()mit einem einzelnen Zeichenfolgenwert aufzurufen , für den ein Array erforderlich ist .

Ich schlage vor, Sie verwenden bindParamstattdessen

$stmt_delete = $pdo->prepare("DELETE FROM users_resumes WHERE id_training_key = ?"); $stmt_delete->bindParam(1, $r); foreach ($result as $r) { $stmt_delete->execute();
}