DB テーブルのupdateをしたいのですが,余分な文字列が入ってしまいます.
連番のidと「文字列の配列」を入れるstringsの2列からなるTableを,以下のように作成しました.
create table mytable(id serial,strings varchar(100)[] ,primary key (id)); insert into mytable (strings) values ('{"hoge","fuga"}');
PHPでこのテーブルをUpdateする処理(下記)を書いたところ,下図のように配列の長さを表す(?)余分な文字「[0:2]=」も一緒に含まれてしまいます.
該当のソースコード
Index=0にある"hoge"を"piyo"に置き換える処理です.
PHP
1function UpdateMyTable($db) 2{ 3 $sql="update mytable set strings[:index]=:str"; 4 $stt=$db->prepare($sql); 5 $stt->bindvalue(':index',0); //文字列配列のIndex=0を指定 6 $stt->bindvalue(':str',"piyo"); //置き換えたい文字列 7 $stt->execute(); //実行 8} 9 10$db = getDb(); //DB接続 11UpdateMyTable($db); 12exit;
Update実行
curl http://localhost/MyPHP.php
補足情報(FW/ツールのバージョンなど)
PHP 7.2.18
Server version: Apache/2.4.48 (Win64)
(PostgreSQL) 12.8
回答1件
あなたの回答
tips
プレビュー