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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

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

3 回答

?
Qyouu

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊

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


您需要檢查您的關(guān)系數(shù)據(jù)并對(duì)模式進(jìn)行適當(dāng)?shù)母?。?qǐng)參閱下面的示例以獲取對(duì)此方法的參考。


如果必須將數(shù)組保存到單個(gè)字段中,則serialize()and unserialize()函數(shù)可以解決問題。但是您不能對(duì)實(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ù)庫中,您需要?jiǎng)?chuàng)建一個(gè)這樣的表


$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í)行諸如此類的查詢(是的,請(qǐng)注意,請(qǐng)注意?。?/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ù)返回一個(gè)mysql連接資源


function connect() {

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

    mysql_select_db('test');

    return $c;

}


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

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊

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


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


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


查看完整回答
反對(duì) 回復(fù) 2019-11-11
  • 3 回答
  • 0 關(guān)注
  • 995 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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