Ondanks de overdaad aan topics over PHP en serializen ben ik toch tegen een probleem aangelopen dat ik niet kon vinden tijdens het zoeken op GoT of op php.net.
Mijn probleem is het volgende:
Ik ben bezig een EJB-achtig framework aan het schrijven in PHP (5.2.1). Onderdeel daarvan is een class MySQL, en die wil ik serializeren. Als ik het object aangemaakt heb ziet de print_r er bijvoorbeeld zo uit:
Maar als ik vervolgens de output van serialize() afdruk is dit het resultaat:
Ik weet dat je php buit-in objecten niet kunt serializen dus die haal ik er al uit (zoals het mysqli-object), maar verder zie ik geen problemen.
Ik heb het trouwens ook nog even met een ander object geprobeerd, en dat werkt wel gewoon:
Heeft iemand een idee hoe het kan dat het MySQL-object niet wil serializen?
Mijn probleem is het volgende:
Ik ben bezig een EJB-achtig framework aan het schrijven in PHP (5.2.1). Onderdeel daarvan is een class MySQL, en die wil ik serializeren. Als ik het object aangemaakt heb ziet de print_r er bijvoorbeeld zo uit:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| MySQL Object ( [v_connection:private] => [v_host:private] => host [v_username:private] => user [v_password:private] => pwd [v_dbname:private] => [v_port:private] => 3306 [v_socket:private] => [v_log:private] => Filelog Object ( [v_fileloc:private] => /opt/lampp/htdocs/db_framework/log [v_log_texts:private] => Array ( ) [v_overwrite:private] => 1 [v_add_datetime:private] => 1 ) [v_connect_on_wakeup:private] => ) |
Maar als ik vervolgens de output van serialize() afdruk is dit het resultaat:
PHP:
1
2
3
4
| // Even aannemen dat de variabele $mysql bestaat print_r(serialize($mysql)); //OUTPUT is dan: N; |
Ik weet dat je php buit-in objecten niet kunt serializen dus die haal ik er al uit (zoals het mysqli-object), maar verder zie ik geen problemen.
Ik heb het trouwens ook nog even met een ander object geprobeerd, en dat werkt wel gewoon:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| class myclass { private $priv1 = "val1", $myclassvar2 = "val2"; public $pub = "val3"; public function __construct(){ $this->priv1 = "val1"; $this->myclassvar2 = "val2"; $this->pub = "val3"; } } $inst = new myclass (); print_r($inst); // Levert deze output op: // O:7:"myclass":3:{s:14:"�myclass�priv1";s:4:"val1";s:20:"�myclass�myclassvar2";s:4:"val2";s:3:"pub";s:4:"val3";} |
Heeft iemand een idee hoe het kan dat het MySQL-object niet wil serializen?
[ Voor 0% gewijzigd door coenbijlsma op 06-04-2007 18:00 . Reden: PHP versie vergeten... ]