ステートメントは、update
挿入データではなく更新データに使用されます。したがって、更新では、テーブルに既にあるもののみを変更でき、新しいものは何も作成されません。
新しいデータを挿入する場合は、insert
ステートメントを使用する必要があります。
投稿するコマンドを使用して、データベースに言っています
ちょっと男はテーブルの値で属性を変更player
し'".$newPlayer[$k]."'
ますid
playear
'".$id."'"
したがって、コメントで説明されているように、ここでのより良い解決策は次のとおりです。
update players p,
(select id, player, substring_index( substring_index(lst, ',', idx), ',', -1) as pl
from (select p.*, @number := @number+1 as idx, lst
from players p,
(select @number := 0 as nb) n,
(select 'i,j,k,l,m,n,o,p' as lst) lst) x ) a
set p.player = a.pl
where p.id = a.id
and p.player = a.player
ただし、PHP の場合は、配列を間にスペースを入れずに$newPlayer
a で区切った文字列として作成する必要があります。,
このようなもの:
$newNames = implode(",",$newPlayer);
$que = "update players p,
(select id, player, substring_index( substring_index(lst, ',', idx), ',', -1) as pl
from (select p.*, @number := @number+1 as idx, lst
from players p,
(select @number := 0 as nb) n,
(select '$newNames' as lst) lst) x ) a
set p.player = a.pl
where p.id = a.id
and p.player = a.player";
$db_con->exec($que);
これであなたは必要ありませんfor