我已经使用
存储了一个数组列表<?php
$array = array("foo", "bar", "hello", "world");
include("mydb.php");
$array_string=mysql_escape_string(serialize($array));
mysql_query("insert into tsest (array) values('$array_string')",$con) or die("not updated");
?>
现在我想用新数组更新该字段,但不要删除我使用过的一个
<?php
$array = array("aaa");
include("mydb.php");
$array_string=mysql_escape_string(serialize($array));
$sql= 'select * from tsest where uname = "manoj" ';
$result = mysql_query($sql,$con);
$row = mysql_fetch_array($result);
$value=$row['array'];
mysql_query('UPDATE tsest SET array="'.$array_string.'"'.$value.' where uname="manoj"',$con) or die("hello");
?>
但它没有工作
答案 0 :(得分:2)
您在存储数组之前已对其进行了序列化,但是在添加数组之前需要进行反序列化。
$value=unserialize($row['array']);
你还需要合并数组,执行$ array_string。'''。$ value将不起作用。
试试这个:
$newArray = mysql_escape_string(serialize(array_merge($value, $array_string)));
mysql_query('UPDATE tsest SET array="'.$newArray.' where uname="manoj"',$con) or die("hello");
答案 1 :(得分:0)
当你像这样保存数组时
mysql_query("insert into tsest (array) values('$array_string')",$con) or die("not updated");
然后您不会保存用户名和此数据。但是,当您尝试获取它时,您使用的是用户名
$sql= 'select * from tsest where uname = "manoj" ';
更新相同。因此,更新无效,因为您的数组未保存为用户名manoj
因此,当您保存数组时,您还必须在表中保存用户名
答案 2 :(得分:0)
您的更新sql存在一些错误 并且序列化的值不能简单地连接以产生新的数组 尝试以下代码
<?php
$array = array("aaa"); include("mydb.php"); $sql= 'select * from
tsest where uname = "manoj" ';
------------------------------------------------------------------------
$result = mysql_query($sql,$con); $row = mysql_fetch_array($result);
$value=$row['array']; $new_array = array_merge($array,
unserialize($value)); array_string =
mysql_escape_string(serialize($new_array)); mysql_query('UPDATE tsest
SET array="'.$array_string.'"'.' where uname="manoj"',$con) or
die("hello");
?>