1

を使用して配列リストを保存しました

<?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");

?>

しかし、うまくいきませんでした

4

3 に答える 3

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");
于 2013-05-10T14:03:01.740 に答える
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");

?>
于 2013-05-10T14:09:18.047 に答える
0

このように配列を保存すると

mysql_query("insert into tsest (array) values('$array_string')",$con) or die("not updated");

次に、このデータとともにユーザー名を保存していません。ただし、取得しようとしているときは、ユーザー名を使用しています

$sql= 'select * from tsest where uname = "manoj" '; 

アップデートも同様。したがって、配列がユーザー名用に保存されていないため、更新は機能しませんmanoj

したがって、配列を保存するときは、テーブルにユーザー名も保存する必要があります

于 2013-05-10T14:05:20.723 に答える