我存储了一个数组列表,使用
<?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");
?>但它并没有起作用
发布于 2013-05-10 22:03:02
在存储数组之前,您已经序列化了数组,但是您需要先取消序列化,然后才能向数组中添加内容。
$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");发布于 2013-05-10 22:05:21
当您像这样保存数组时
mysql_query("insert into tsest (array) values('$array_string')",$con) or die("not updated");则您不会将用户名与此数据一起保存。但是,当您尝试获取它时,您使用的是用户名
$sql= 'select * from tsest where uname = "manoj" '; 更新也是如此。因此,更新不起作用,因为您的数组未保存为用户名manoj
因此,在保存数组时,还必须将用户名保存在表中
发布于 2013-05-10 22:09:18
您的update 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");
?>https://stackoverflow.com/questions/16484029
复制相似问题