SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 23.09.2002, 10:40:50
AndreasBecker AndreasBecker ist offline
Anfänger
 
Registriert seit: Sep 2002
Ort: Essen
Alter: 40
Beiträge: 9
AndreasBecker eine Nachricht über ICQ schicken
Array serialized in Msql speichern...

Hallo, als Neuling in diesem Board möchte ich gleich gaanz wichtige Frage stellen, deren Beantwortung ich seit einiger Zeit vergeblich im ganzen Internet suche...

Ich möchte in einem kleinen Testskript für ein späteres Projekt lediglich ein Array via serialized in eine speicherbare Variable umwandeln, deren Inhalt ich in ein BLOB Feld einer Mysql Tabelle speichern will.
Dies scheint auch zu funktionieren, doch leider bekomme ich beim Abruf kein vernünftiges Ergebnis heraus, PhpMyAdmin zeigt natürlich auch nur "BLOB" an, da alles andere ja eh eher unverständlich wäre...

Doch hier zunächst der Code:

PHP-Code:
<?php

$dbname     
=     "datenbank";
$servername =     "localhost";
$adminid     =     "benutzer";
$dbpassword =     "passwort";

$conn mysql_connect($servername,$adminid,$dbpassword) or die ("Verbindung zur Datenbank nicht möglich");
mysql_select_db($dbname) or die ("Datenbankauswahl nicht möglich!");

$new_array[0]="a";
$new_array[1]="b";
$new_array[2]="c";

$blob_array=serialize($new_array);

$sql="INSERT INTO serial (array) VALUES ('$blob_array')";
$res=mysql_query($sql);
if (
$res)
{
echo 
"Daten erfolgreich eingefügt!<br>";
$new_sql="SELECT * FROM serial";
$new_res=mysql_query($new_sql);

while(
$new_obj=mysql_fetch_object($new_res));
    {
    
$from_db_array=unserialize($new_obj->array);
    echo 
"Die Werte von $from_db_array lauten:<br>";
    echo 
$from_db_array[0]." ".$from_db_array[1]." ".$from_db_array[2];
    }    
}
else
{
echo 
"Fehler beim Eintragen der Daten!";
}


?>
Die Struktur der Tabelle "serial" sieht folgendermaßen aus:

Code:
ID  int(10)  not NULL  auto_increment  primary   
array  blob   not NULL
, also simpel und aufs nötigste beschränkt...
Wer kann mir weiterhelfen???

Geändert von AndreasBecker (23.09.2002 um 10:43:28 Uhr)
Mit Zitat antworten
  #2  
Alt 23.09.2002, 11:02:19
MiH MiH ist offline
Member
 
Registriert seit: Aug 2002
Beiträge: 775
mach doch anstatt ein fetch_object ein fetch_array oder fetch_row das würde dann so aussehen:
PHP-Code:
while($row mysql_fetch_row($new_res)){
 
$myarr unserialize($row[1]);
 for(
$a=0;$a<count($myarr);$a++){
  echo 
$myarr[$a]."<br />";
 }

wobei der spaltenname "array" sicherlich ungücklich ist. besser wäre "myarray" um fehlern aus dem weg zu gehen.

Geändert von MiH (23.09.2002 um 11:04:23 Uhr)
Mit Zitat antworten
  #3  
Alt 23.09.2002, 12:43:38
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
Hallo
Willst du UMBEDINGT serealize verwenden? du könntest die daten nämlich erstens in eine zweite tabelle speichern bzw. mit implode/explode arbeiten (die methode würde ich vorschlagen) implode verwandelt ein array in einen string, unter angabe eines trennstrings, explode macht aus einem string ein array, also beispielsweise:

$arr=array("bla","blubb");
$str=implode($arr,"||--@@--||");
print $str; #ergibt: "bla||--@@--||blubb"
$arr=explode($str,"||--@@--||");

Das lange trennzeichen verwende ich deshalb, weil es unrealistisch erscheint, dass diese zeichenfolge in einem arrayeintrag vorkommt, du könntest auch einfach einen strichpunkt verwenden.
erspart dir ärger ;)
Mit Zitat antworten
  #4  
Alt 23.09.2002, 13:32:59
AndreasBecker AndreasBecker ist offline
Anfänger
 
Registriert seit: Sep 2002
Ort: Essen
Alter: 40
Beiträge: 9
AndreasBecker eine Nachricht über ICQ schicken
hey danke, ich denke mal, das implode/ explode wird mich weiterbringen.
Hab mit solchen Konvertierungen noch nicht allzu viel zu tun gehabt, muss also nicht unbedingt serialized werden!

Werds gleich mal ausprobieren!!!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:52:00 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt