Mysql
 sql >> Base de données >  >> RDS >> Mysql

PDO exécute une erreur de conversion de tableau en chaîne

execute() La méthode attend un seul tableau. À partir de la documentation :

Avec array($id,$array) vous passeriez un tableau multidimensionnel qui ressemble à ceci :

Array
(
    [0] => 1
    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

)

Ce n'est certainement pas ce qu'il attend. Il a besoin d'un tableau unidimensionnel contenant les valeurs à insérer.

Pour résoudre ce problème, vous devez modifier le format du tableau. Ajoutez l'ID au début du tableau, comme ceci :

$array = array(1, "a",  "b",  "c");

Si la variable ID est générée dynamiquement, vous pouvez l'ajouter manuellement au début du tableau en utilisant array_unshift() fonction :

$id = "1";    
$array = array("a",  "b",  "c");
$array = array_unshift($array, $id);

... puis modifiez le execute() appelle comme ça :

$statement1->execute($array);