【问题标题】:Loop Std object array from SOAP to Database PHP从 SOAP 到数据库 PHP 的循环标准对象数组
【发布时间】:2015-09-24 12:23:43
【问题描述】:

获取肥皂响应作为 STD 对象。 我正在尝试将其放入 mysql 数据库中。

for ($i = 0; $i < sizeof($getrelaties); $i++) {
    $array = get_object_vars($getrelaties[$i]);
    print "<pre>";
    print_r($array);
    print "</pre>";
    print "<hr>";

    foreach ($array as $key => $val) {
        echo $key;
        echo $val;
    }
};
  

我正在获取键(即行名)和值。但是有点坚持让它们被分隔,所以我可以把它们放在一个查询中 这是对象中的一个数组。

(
    [ID] => 4876260
    [AddDatum] => 2015-09-24T09:16:00
    [Code] => K0001
    [Bedrijf] => Henk
    [Contactpersoon] => 
    [Geslacht] => m
    [Adres] => 
    [Postcode] => 
    [Plaats] => 
    [Land] => 
    [Adres2] => 
    [Postcode2] => 
    [Plaats2] => 
    [Land2] => 
    [Telefoon] => 
    [GSM] => 
    [FAX] => 
    [Email] => ******@gmail.com
    [Site] => 
    [Notitie] => 
    [Bankrekening] => 
    [Girorekening] => 
    [BTWNummer] => 
    [Aanhef] => 
    [IBAN] => 
    [BIC] => 
    [BP] => B
    [Def1] => 
    [Def2] => 
    [Def3] => 
    [Def4] => 
    [Def5] => 
    [Def6] => 
    [Def7] => 
    [Def8] => 
    [Def9] => 
    [Def10] => 
    [LA] => 0
    [Gb_ID] => 0
    [GeenEmail] => 0
    [NieuwsbriefgroepenCount] => 0
)

问题是我想把这些数组放到数据库中。 我不想对行进行硬编码。有什么建议吗?

【问题讨论】:

    标签: php mysql arrays soap


    【解决方案1】:

    使用serialize() 将数组字符串化并存储在 MySQL 的 BLOB 或 TEXT 字段中:

    $serialized_array = serialize($array);
    

    然后您可以根据需要从数据库中返回SELECT此数据并使用:

    $data = unserialize($serialized_array);
    

    这是 100% 的方法,因为从第三方 SOAP 服务返回的数组格式可能会随着时间而改变,您不会受到这些变化的摆布,并且必须检测它们并相应地迁移您的数据库架构等等

    【讨论】:

    • 那么,如果我理解正确,将完整的 std 对象序列化为数据库中的 1 个字段,然后将其反序列化以显示或使用数据? ..请解释:)
    • @user3119386 是的,根据需要存储每个不同的数组,并且对您的应用程序有意义,利用unserialize() 将代表字符串重新格式化为有用的 PHP。
    • @user3119386 这解决了您的问题吗?如果是这样,您会赞成/接受我的回答吗?谢谢:)
    猜你喜欢
    • 2017-03-12
    • 2020-06-30
    • 2019-07-06
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-24
    • 2019-02-12
    相关资源
    最近更新 更多