我花了几个小时研究PostgreSQL插入数组文档和示例。但我只是越来越困惑。
我已经创建了表word_mash_word_cube_definitions,其中列definition是text[]类型。
在创建列时,我使用了text[][]。但\d+将其显示为text[]。
在PHP中,数组是:
$design[1] = [ 'letter' => null , 'direction' => 'down' , 'x-axis' => 7 , 'y-axis' => 3 ];
$design[2] = [ 'letter' => null , 'direction' => 'left' , 'x-axis' => 7 , 'y-axis' => 4 ];
$design[3] = [ 'letter' => null , 'direction' => 'up' , 'x-axis' => 6 , 'y-axis' => 4 ];
$design[4] = [ 'letter' => null , 'direction' => 'left' , 'x-axis' => 6 , 'y-axis' => 3 ];
$design[5] = [ 'letter' => null , 'direction' => 'down' , 'x-axis' => 5 , 'y-axis' => 3 ];
$design[6] = [ 'letter' => null , 'direction' => 'down' , 'x-axis' => 5 , 'y-axis' => 4 ];我的目标是将整个数组存储在一行中。但我不知道这是否可能。
请给我看一下正确的
INSERT INTO word_mash_word_cube_definitions ( definition ) VALUE ( ??? )我迷路了。
发布于 2022-10-13 19:44:46
如果您需要存储键控/关联数组,那么使用JSON代替text[]列。将列类型设置为jsonb,并在PHP中使用json_encode($design)并存储结果字符串。读取该行时,使用json_decode($design, true)将其转换回原来的PHP数组。
以这种方式存储它可以提供格式验证和PostgreSQL函数,以便在JSON中进行查询。
这种方法有一些限制,特别是在字符编码方面,如果你在应用程序中添加外语支持的话,这将变得非常重要。
https://dba.stackexchange.com/questions/318184
复制相似问题