0

我正在尝试使用带有 PostgreSQL 数据库的 phpGrid 将字符串插入到整数数组中。在网格内显示数据以供查看时,我必须将数组转换为字符串以删除括号,但是当我尝试在添加字段时将字符串转换回数组时,它不会转换为格式 {1,2 ,3,4}。我正在使用 PostgreSQL 提供的 string_to_array 函数来执行此操作。这是我正在使用的代码:

$dg = new C_DataGrid("SELECT array_to_string(field, ', ') as field_to_string FROM tblname");

这可以按预期工作(从正在显示的数据中删除 { })但是当我尝试插入时,此查询如下所示:

INSERT INTO tblname (field_to_string) VALUES ('1,2,3,4');

这就是我要插入的内容(转换为数组)

$arrFields['field_to_string'] = "string_to_array('" . $arrFields['field_to_string'] . "', ',')";

$sqlCrud = $db->db->GetInsertSQL($rs, $arrFields, get_magic_quotes_gpc(), true);

任何帮助,将不胜感激。

谢谢。

4

1 回答 1

4

您可以通过将其DEBUG设置为 true来回显 sqlCrud 并找出 SQL Insert 语句吗?很可能 Insert 语句在转换过程中出错。

您的 PostgreSql 应该类似于以下内容:

INSERT INTO tblname(field_to_string) VALUES ('{1,2,3,4}'::varchar[])

您可以在此处查看带有数组到字符串转换示例的 PostGreSql:http ://www.postgresonline.com/journal/archives/228-PostgreSQL-Array-The-ANY-and-Contains-trick.html

于 2016-10-17T05:11:44.067 回答