sql >> Database >  >> RDS >> Mysql

PDO execute array naar string conversiefout

execute() methode verwacht een enkele array. Uit de documentatie:

Met array($id,$array) je zou een multidimensionale array doorgeven die er als volgt uitziet:

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

)

Dit is zeker niet wat het verwacht. Het heeft een eendimensionale array nodig die de in te voegen waarden bevat.

Om dit probleem op te lossen, moet u de matrixindeling wijzigen. Voeg de ID toe aan het begin van de array, zoals zo:

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

Als de ID-variabele dynamisch wordt gegenereerd, kunt u deze handmatig aan de array toevoegen met array_unshift() functie:

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

... en wijzig dan de execute() bel zo:

$statement1->execute($array);


  1. MySQL UPSERT zonder ON DUPLICATE KEY

  2. BIGINT UNSIGNED waarde is buiten bereik

  3. Hoe dump ik een MySQL-bestand zonder Foreign Keys via de opdrachtregel?

  4. Oracle - Kloontabel - Structuur, gegevensbeperkingen en alles