PDO PHP in die DB einfügen aus einem assoziativen array

Ich habe ein array wie dieses

  $a = array( 'phone' => 111111111, 'image' => "sadasdasd43eadasdad" );

Wenn ich eine var-dump bekomme ich diese ->

 { ["phone"]=> int(111111111) ["image"]=> string(19) "sadasdasd43eadasdad" }

Nun möchte ich diese DB mit der IN-Anweisung -

 $q = $DBH->prepare("INSERT INTO user :column_string VALUES :value_string");
 $q->bindParam(':column_string',implode(',',array_keys($a)));
 $q->bindParam(':value_string',implode(',',array_values($a)));
 $q->execute();

Das problem, das ich habe ist, dass implode einen string zurückgeben. Aber die 'Telefon' - Spalte ist ein integer in der Datenbank und auch das array speichert es als integer. Daher bin ich immer der SQL-Fehler als meine Letzte Abfrage so Aussehen --

INSERT INTO user 'phone,image' values '111111111,sadasdasd43eadasdad';

Ist eine falsche Abfrage. Gibt es eine Möglichkeit um ihn herum.

Meine Spaltennamen sind dynamische basiert, was der Benutzer will, zu legen. So kann ich nicht verwenden Sie die Platzhalter wie :Telefon und :Bild, wie ich kann nicht immer Holen Sie sich a-Werte für diese beiden Spalten. Bitte lassen Sie mich wissen, wenn es gibt einen Weg, um dieses. ansonsten werde ich haben, um zu definieren, mehrere Funktionen, die jede Art von update.

Dank.

  • wie lange ist die Länge des Feilen-Feld? es wieder neun (9) 1 die aber Ihre Telefonnummer haben 10d igits. Sql sould zurück eine Warnung, wie er abgeschnitten, der Wert aber nur überprüfen.
  • Stimmen zu Louis, obwohl eine Telefonnummer gesehen werden kann, als ein integer ist, erwarten Sie nicht zu tun, keine Mathematik mit es und Sie kann ausgehen von der Größe, es ist in der Regel besser behandelt und gespeichert als text-string.
InformationsquelleAutor Fox | 2012-11-22
Schreibe einen Kommentar