簡體   English   中英

在一個字段中存儲多個值

[英]Storing multiple values in one field

我有一個腳本,它將在我的數據庫中的單元格中插入一個值。 該單元格將總共包含 4 個值。 它應該看起來像這樣:0;0;0;0(每個“0”,代表一個值)

如何在 '0' 數字 3 所在的位置插入示例值 100,所以它看起來像這樣:

0;0;100;0

提前致謝。

這是糟糕的數據庫設計,打破了數據庫設計的第一種正常形式

我建議重新考慮您的架構和數據架構。

也許將它們分成單獨的列。

您的數據應進行相關設計,以盡量減少列中的重復模式(請參閱上面的鏈接)

我幾乎可以向你保證,更好的方法......

查看serialize()unserialize()

$array = array(0,20,103,330);
$string = serialize($array); // store this in db

然后從 db 中獲取字符串:

$array = unserialize($string);

使用數組訪問/更新值並重新存儲在數據庫中

或者,如果您堅持以下格式:

$string = '0;0;100;0'; // coming from db
$array = explode(';' , $string);
$array[2] = 100;
$string = implode(';' , $array);
<?php

    // original string of values seperated by colon
    $string = "0;0;0;0";

    // create array of values by splitting at colons
    $vals = preg_split('/;/', $string);

    // modify the value of any elements in your array
    $vals[2] = 100;

    // glue your array of values together with semicolons at the joins
    $string = implode(';',$vals);

    // check the value has been changed coreectly
    echo $string;

?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM