Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PDO executa erro de conversão de array para string


execute() método espera uma única matriz. Da documentação:

Com array($id,$array) você estaria passando um array multidimensional que se parece com isso:
Array
(
    [0] => 1
    [1] => Array
        (
            [0] => a
            [1] => b
            [2] => c
        )

)

Isso certamente não é o que ele espera. Ele precisa de um array unidimensional contendo os valores a serem inseridos.

Para corrigir esse problema, você precisa modificar o formato da matriz. Adicione o ID ao início da matriz, assim:
$array = array(1, "a",  "b",  "c");

Se a variável ID for gerada dinamicamente, você poderá adicioná-la manualmente ao array usando array_unshift() função:
$id = "1";    
$array = array("a",  "b",  "c");
$array = array_unshift($array, $id);

... e então modifique o execute() chame assim:
$statement1->execute($array);