sql >> Databasteknik >  >> RDS >> Mysql

PDO exekvera array till sträng konverteringsfel

execute() metoden förväntar sig en enda array. Från dokumentationen:

Med array($id,$array) du skulle passera en flerdimensionell array som ser ut så här:

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

)

Detta är verkligen inte vad den förväntar sig. Den behöver en endimensionell array som innehåller de värden som ska infogas.

För att åtgärda det här problemet måste du ändra arrayformatet. Lägg till ID:t i början av arrayen, så här:

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

Om ID-variabeln genereras dynamiskt kan du lägga till den manuellt i arraystarten med array_unshift() funktion:

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

... och ändra sedan execute() ring så här:

$statement1->execute($array);


  1. Django ConnectionAbortedError:[WinError 10053] En upprättad anslutning avbröts av programvaran i din värddator

  2. Inre Sammanfogning av tre bord

  3. Hur uppdaterar man rullgardinsmenyn utan att sidan uppdateras?

  4. Hur kan jag skriva migrering för att infoga poster med phinx?