it-swarm.com.de

Speichern Sie das Array in der MySQL-Datenbank

Ich möchte zusätzliche Informationen speichern, bevor Sie die Gesamtbestellung an Paypal senden. Für jedes Element habe ich eine einzige Spalte in meiner MySQL-Datenbank erstellt, in der ich es speichern möchte. Jetzt dachte ich daran, es als Array zu speichern, das ich später lesen kann, um eine PHP - Seite zu erstellen. Zusätzliche Felder werden aus Eingabeformularfeldern übernommen.

Durch die Verwendung eines Arrays kann ich sicher sein, Informationen nicht zu verwechseln?

15
user1343454

Sie können das Array mit serialize / unserialize speichern. Mit dieser Lösung können sie nicht ohne weiteres aus anderen Programmiersprachen verwendet werden. Daher können Sie stattdessen json_encode / json_decode verwenden (was Ihnen ein weithin unterstütztes Format gibt). Vermeiden Sie mit implode/explode, da Sie wahrscheinlich Fehler oder Sicherheitslücken bekommen.

Beachten Sie, dass Ihre Tabelle dadurch nicht normalisiert wird. Dies kann eine schlechte Idee sein, da Sie die Daten nicht einfach abfragen können. Daher sollten Sie dies sorgfältig prüfen, bevor Sie fortfahren. Möglicherweise müssen Sie die Daten für Statistiken abfragen oder auf andere Weise? Gibt es andere Gründe, die Daten zu normalisieren?

Speichern Sie auch das $_POST-Array nicht. Jemand kann leicht ein eigenes Webformular erstellen und Daten auf Ihre Website stellen, wodurch ein wirklich großes Formular gesendet wird, das viel Platz beansprucht. Speichern Sie die gewünschten Felder und stellen Sie sicher, dass die Daten vor dem Speichern überprüft werden (damit Sie keine ungültigen Werte erhalten).

29
Emil Vikström

Die Art und Weise, wie solche Sachen gemacht werden, ist mit serializing dem Array, was "einen String daraus machen" bedeutet. Um dies besser zu verstehen, werfen Sie einen Blick darauf:

$array = array("my", "litte", "array", 2);

$serialized_array = serialize($array); 
$unserialized_array = unserialize($serialized_array); 

var_dump($serialized_array); // gives back a string, perfectly for db saving!
var_dump($unserialized_array); // gives back the array again
11
Sliq

Um ein Array (oder ein Objekt) mit PHP in einen String zu konvertieren, rufen Sie die serialize () auf:

$array = array( 1, 2, 3 );
$string = serialize( $array );
echo $string;

$ string wird jetzt eine Stringversion des Arrays enthalten. Die Ausgabe des obigen Codes lautet wie folgt:

a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}

Um vom String zurück in das Array zu konvertieren, benutze unserialize ():

// $array will contain ( 1, 2, 3 )
$array = unserialize( $string );
6
Amaresh Tiwari

Verwenden Sie die PHP Funktion serialize(), um Arrays in Strings zu konvertieren. Diese Zeichenfolgen können problemlos in der MySQL-Datenbank gespeichert werden. Mit unserialize() können sie bei Bedarf wieder in Arrays umgewandelt werden.

5
Paul

Speichern Sie es in einer mehrwertigen Spalte mit einem Trennzeichen in einer RDBMs-Tabelle.

0
Siva
<?php
$myArray = new array('1', '2');
$seralizedArray = serialize($myArray);
?>
0