シリアライズについて習得し始めたばかりで、簡単な説明が見つからないような質問があります。データベースに既に存在するシリアライズされた文字列を追加する方法
は、私は一週間と呼ばれるテーブルを持っていた週の内側に私は私のデータベースに保存されているようにシリアライズされた食事IDの束を含む3列目と3列だったと言う:
INSERT INTO `week` (`week_id`, `meal_code`, `meal_id`) VALUES
(1, 'week12016', 'a:6:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;}');
をしかし、その後、私は別のものを追加したいです既存の文字列にmeal_idが、私は次のよう
$food=array("7");
$sfood=serialize($food);
を格納するためのPHPファイルで試してみました
(1, 'week12016','a:7:{i:0;i:1;i:1;i:2;i:2;i:3;i:3;i:4;i:4;i:5;i:5;i:6;i:6;i:7;}')
、読み込むので、他の列を更新しません
は、その後の週のテーブル内の既存のmeal_idsに
mysqli_query($conn,"UPDATE week
SET meal_id ('$sfood')");
//if entry into the database is successful, confirm with a alert popup and refresh the home page
if(mysqli_affected_rows($conn) > 0){
//header("location: admin.php");
header("refresh:0; url=admin.php");
echo "<script type='text/javascript'>alert('Upload Successful!')</script>";
exit;
を7を追加しようとしている。しかし、私は自分のデータベースを確認したときに、何も変わっていません。
私が間違っていることは、達成しようとしていることを実行することも可能ですか?
'UPDATE week SET meal_id( '$ sfood ') 'あなたは、' WHERE'節なしでデータベース全体を更新しようとしていることに気づきます。エラーをチェックすると 'mysqli_error($ conn)'でここで助けになっていました。また、RTM https://dev.mysql.com/doc/refman/5.7/en/update.htmlの構文が間違っています。 –
おそらく、列を取得し、シリアル化を解除し、データを追加し、再シリアル化し、次に '更新... WHERE'をお勧めします。それ以外の場合は、データを上書きするか無効にします。 – aynber
さらに、アップデートに追加する場合は、 'CONCAT()'または 'CONCAT_WS()' https://dev.mysql.com/doc/refman/5.7/en/string-functionsのいずれかを使用する必要があります。 htmlの場合は、その質問についてです。 –