it-swarm.com.de

Platzhalter müssen ein abschließendes [] haben, wenn sie mit einem Array von Werten erweitert werden sollen

In Drupal 8 Ich versuche, einige Daten in meine benutzerdefinierte Tabelle einzufügen. Während der Ausführung der Abfrage wird folgende Fehlermeldung angezeigt:

InvalidArgumentException: Platzhalter müssen ein abschließendes [] haben, wenn sie mit einem Array von Werten erweitert werden sollen. in Drupal\Core\Database\Connection-> expandArguments ()

Hier finden Sie meinen Code:

$qt = new \stdClass();
$qt->name = 'test name';
$qt->machine_name = 'test machine name';
$qt->settings = array('setting1'=>value1, 'setting2'=>value2);

$query = \Drupal::database()->insert('my_custom_table');
$query->fields([
  'machine_name',
  'name',
  'settings',
]);
$query->values([
  $ob->machine_name,
  $ob->name,
  $ob->settings,
]);
$query->execute();

Wenn ich Werte wie unten gebe, funktioniert es. Bitte helfen Sie mir, was mit dem obigen Code falsch ist.

$query->values([
  'test',
  'ttt',
  'dfs',
]);
$query->execute();
4
ARUN

Dieses Problem wurde behoben. Es ging darum, ein Array an die Datenbank zu übergeben. Die hinzugefügte Serialisierungsfunktion hat das Problem behoben.

$query->values([
$ob->machine_name,
$ob->name,
serialize($ob->settings),
]);
$query->execute();
4
ARUN

das passiert mir auch, wenn ich einem erwarteten Int einen String hinzufüge, also war Casting notwendig

(int)$ob->number_as_string
0
Matoeil