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

Errore di conversione da matrice a stringa di esecuzione PDO

execute() il metodo prevede un singolo array. Dalla documentazione:

Con array($id,$array) passeresti un array multidimensionale simile a questo:

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

)

Questo non è certamente quello che si aspetta. Ha bisogno di un array unidimensionale contenente i valori da inserire.

Per risolvere questo problema, è necessario modificare il formato dell'array. Aggiungi l'ID all'inizio dell'array, in questo modo:

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

Se la variabile ID viene generata dinamicamente, puoi aggiungerla manualmente all'inizio dell'array usando array_unshift() funzione:

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

... e poi modifica execute() chiama così:

$statement1->execute($array);