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

PDO udføre array til streng konverteringsfejl

execute() metoden forventer et enkelt array. Fra dokumentationen:

Med array($id,$array) du ville passere et multidimensionelt array, der ser sådan ud:

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

)

Det er bestemt ikke, hvad den forventer. Den har brug for et enkeltdimensionelt array, der indeholder de værdier, der skal indsættes.

For at løse dette problem skal du ændre array-formatet. Tilføj ID'et til starten af ​​arrayet, sådan:

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

Hvis ID-variablen genereres dynamisk, så kan du manuelt tilføje den til matrixstarten ved hjælp af array_unshift() funktion:

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

... og rediger derefter execute() ring sådan:

$statement1->execute($array);


  1. Sikring af ekstern mysql-forbindelse

  2. Hvad er forskellen mellem int og heltal i MySQL 5.0?

  3. sammenlægning af to SELECT-forespørgsler

  4. Overvågning af PostgreSQL i et hybridmiljø