如何处理从pgsql返回的数组?

时间:2011-05-02 16:52:07

标签: php arrays json postgresql

在php中我从pgsql获取一个数组:

$res = $db
    ->query( "SELECT myarray FROM arrays WHERE array_name=smth" )
    ->fetchRow();
exit (json_encode($res));

输入pgsql是整数[]

但在JS中我得到一个字符串“{1,2,3,...,}”的JSON 如何以“阵列方式”获取这些数据?

4 个答案:

答案 0 :(得分:2)

PDO不进行任何类型的翻译,一切都以字符串形式返回。所以你必须使用explode()解析字符串并自己构建一个PHP数组。

答案 1 :(得分:1)

json_encode成功返回JSON编码的字符串。

将fetchrow()返回的值分配给变量并尝试在json_encode之前打印它。这将是一个阵列!!!

答案 2 :(得分:1)

如果要在JavaScript中将JSON解码为数组,只需使用函数eval()即可。但首先你应该确保它是一个JSON字符串。 查看更多:http://json.org/js.html

答案 3 :(得分:0)

您可以使用以下内容:

$php_array = json_decode( str_replace( 
    array( '[',      ']',      '{', '}' ), 
    array( '\u005B', '\u005D', '[', ']' ), 
    $your_pgsql_array 
) );