serialize Probleme

low-group

Erfahrenes Mitglied
hallo,

irgendwie bekomme ich es nicht hin, ein Mehrdemensionales Array in die DB zu speichern.

Ich habe schon viele Möglichkeiten getestet, aber es hat leider bisher noch nicht geklappt. Wo liegt mein Denkfehler? Hier mal mein mom. Script:

PHP:
$uid = "1";
$result = $db->query_first("SELECT data FROM save_ip WHERE userid = '$uid'");
$result[data] = unserialize($result['data']);
if(!isset($result['data'])) {
$result[data][ip] = "10.0.0.10";
$result[data][time] = time();
$set = $result[data];
$set = serialize($set);
			$db->unbuffered_query("insert into save_ip set data = '$set', userid = '1'");
}
else{
$result[data][ip] = array_push($result[data][ip],"10.0.0.20");
$result[data][time] = array_push($result[data][time],time());

$set = $result[data];
$set = serialize($set);
			$db->unbuffered_query("update save_ip set data = '$set' WHERE userid = '1'");
}

Ich will also auslesen, ob es für eine UserID schon einen Eintrag gibt, wenn nicht, dann soll ein neuer Eintrag erstellt werden, wenn ja, dann sollen die Daten in das Array hinzugefügt werden.
Beim hinzufügen kommt aber immer dies:

Warning: array_push(): First argument should be an array

Wer kann mir helfen?
 
Warning: array_push(): First argument should be an array heisst er will nen array als erstes und nicht einen string.

Probier es mal so:

$uid = "1";
$result = $db->query_first("SELECT data FROM save_ip WHERE userid = '$uid'");
$result[data] = unserialize($result['data']);
if(!isset($result['data'])) {
$result[data][ip] = array("10.0.0.10");
$result[data][time] =array(time());
$set = $result[data];
$set = serialize($set);
$db->unbuffered_query("insert into save_ip set data = '$set', userid = '1'");
}
else{
$result[data][ip] = array_push($result[data][ip],"10.0.0.20");
$result[data][time] = array_push($result[data][time],time());

$set = $result[data];
$set = serialize($set);
$db->unbuffered_query("update save_ip set data = '$set' WHERE userid = '1'");
}
 
Zurück