我有一个脚本,它会在我的数据库中的单元格中插入一个值。该单元格将包含4个值。它应该如下所示:0; 0; 0; 0(每个'0',表示一个值)
如何在'0'数字3所在的位置插入示例值100,所以它看起来像这样:
0; 0; 100; 0
提前致谢。
答案 0 :(得分:2)
这是糟糕的数据库设计,打破了数据库设计的first normal form。
我建议您重新考虑您的架构和数据架构。
可能会将它们分解为各个列。
您的数据应按关系设计,以尽量减少列中的重复模式(请参阅上面的链接)
我几乎可以向你保证 更好的方式...
答案 1 :(得分:1)
查看serialize()
和unserialize()
$array = array(0,20,103,330);
$string = serialize($array); // store this in db
然后从db:
获取字符串$array = unserialize($string);
使用数组访问/更新值并在db
中重新存储或者如果您遇到以下格式:
$string = '0;0;100;0'; // coming from db
$array = explode(';' , $string);
$array[2] = 100;
$string = implode(';' , $array);
答案 2 :(得分:0)
<?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;
?>