第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將PHP數(shù)組保存到MySQL嗎?

將PHP數(shù)組保存到MySQL嗎?

達令說 2019-11-11 10:30:54
什么是將數(shù)據(jù)數(shù)組保存到單個mysql字段的好方法?同樣,一旦我在mysql表中查詢該數(shù)組,又有什么好方法可以將其恢復(fù)為數(shù)組形式?是序列化和反序列化答案嗎?
查看完整描述

3 回答

?
Qyouu

TA貢獻1786條經(jīng)驗 獲得超11個贊

沒有好的方法可以將數(shù)組存儲到單個字段中。


您需要檢查您的關(guān)系數(shù)據(jù)并對模式進行適當(dāng)?shù)母摹U垍㈤喯旅娴氖纠垣@取對此方法的參考。


如果必須將數(shù)組保存到單個字段中,則serialize()and unserialize()函數(shù)可以解決問題。但是您不能對實際內(nèi)容執(zhí)行查詢。


作為序列化功能的替代方法,還有 json_encode()和json_decode()。


考慮以下數(shù)組


$a = array(

    1 => array(

        'a' => 1,

        'b' => 2,

        'c' => 3

    ),

    2 => array(

        'a' => 1,

        'b' => 2,

        'c' => 3

    ),

);

要將其保存在數(shù)據(jù)庫中,您需要創(chuàng)建一個這樣的表


$c = mysql_connect($server, $username, $password);

mysql_select_db('test');

$r = mysql_query(

    'DROP TABLE IF EXISTS test');

$r = mysql_query(

    'CREATE TABLE test (

      id INTEGER UNSIGNED NOT NULL,

      a INTEGER UNSIGNED NOT NULL,

      b INTEGER UNSIGNED NOT NULL,

      c INTEGER UNSIGNED NOT NULL,

      PRIMARY KEY (id)

    )');

要使用記錄,您可以執(zhí)行諸如此類的查詢(是的,請注意,請注意?。?/p>


function getTest() {

    $ret = array();

    $c = connect();

    $query = 'SELECT * FROM test';

    $r = mysql_query($query,$c);

    while ($o = mysql_fetch_array($r,MYSQL_ASSOC)) {

        $ret[array_shift($o)] = $o;

    }

    mysql_close($c);

    return $ret;

}

function putTest($t) {

    $c = connect();

    foreach ($t as $k => $v) {

        $query = "INSERT INTO test (id,".

                implode(',',array_keys($v)).

                ") VALUES ($k,".

                implode(',',$v).

            ")";

        $r = mysql_query($query,$c);

    }

    mysql_close($c);

}


putTest($a);

$b = getTest();

該connect()函數(shù)返回一個mysql連接資源


function connect() {

    $c = mysql_connect($server, $username, $password);

    mysql_select_db('test');

    return $c;

}


查看完整回答
反對 回復(fù) 2019-11-11
?
慕妹3146593

TA貢獻1820條經(jīng)驗 獲得超9個贊

通常,是的,序列化和反序列化是可行的方法。


但是,如果您的數(shù)據(jù)很簡單,則另存為逗號分隔的字符串可能會更好地存儲空間。例如,如果您知道數(shù)組只是數(shù)字列表,則應(yīng)使用爆破/爆炸。1,2,3和之間的區(qū)別a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}。


如果不是,則在所有情況下都對工作進行序列化和反序列化。


查看完整回答
反對 回復(fù) 2019-11-11
  • 3 回答
  • 0 關(guān)注
  • 1005 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號