On 03/02/2017 12:45 PM, Alexander Farber wrote:
Good evening!
I am calling this stored function -
CREATE OR REPLACE FUNCTION words_get_board(
in_gid integer
) RETURNS TABLE (
out_bid integer,
out_letters varchar[15][15],
out_values integer[15][15]
) AS
$func$
SELECT
bid,
letters,
values
FROM words_games
WHERE gid = in_gid;
$func$ LANGUAGE sql STABLE;
I am not seeing where you assign the results of your SELECT to the OUT parameters in the RETURNS TABLE. Nor do I see anything that turns the results into an array for those OUT parameters of array type.
The function isn't the problem here - its in SQL language. Explicit assignment is needed in pl/pgsql.
by a PHP script -
$sth = $dbh->prepare(SQL_GET_BOARD);
$sth->execute(array($gid));
if ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
$bid = $row['bid'];
$letters = $row['letters'];
$values = $row['values'];
}
And then print the variable type -
error_log('letters: ' . gettype($letters));
and it is a "string" (instead of inspected array) with the following
content:
Proper usage of PHP PDO is the concern - and outside my personal experience.
David J.