Re: Looking for some assistance / guidance --

Lists: Postg토토SQL : Postg토토SQL 메일 링리스트 : 2014-07-29 이후 PGSQL-PHP 13:09
From: Jeff Silberberg <jms(at)dapage(dot)net>
To: pgsql-php(at)postgresql(dot)org
Subject: Looking for some assistance / guidance --
Date: 2014-07-29 00:45:06
Message-ID: CALWasQ=LmiZsZdJ1sLUT4jWrULSOLNsGS298yLkafKbEppbEHQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-php

Good evening --

I have a Wordpress / HTML form that includes <select size="5" multiple
name=Keys[]"....>

The form calls a PHP CGI program and if I set it to phpinfo() I see that
the array Keys is in the post data. An I can do a $selectedKeys =
$_POST('Keys') and walk through and echo out the array elements without a
problem.

My issues start when I attempt to pass the array of Keys to my PostgreSql
function with a parameter list of (web_Keys_ integer[], web_text_ text,
web_user_ text) ................

in my php I do a pg_connect, and then prepare a number of statements all of
which work but the last one.

it is $return_cde = pg_prepare($conn, "SendKeys", 'select
web.sendKeys$1, $2, $3)');.

and I try to execute this with

$userKey=$_POST['Keys'];
$userText=$_POST['msgText'] . " / " . $current_user->display_name;

$return = pg_execute($conn, "SendKeys", array($userKey, $userText,
$current_user->display_name));

Which returns and error --
function.pg-execute <http://dispatch.dapage.net/cgi-bin/function.pg-execute>]:
Query failed: ERROR: array value must start with "{" or dimension
information in */home/xxxxxxx/public_html/enterkey/cgi-bin/xxxxxxcgi.php*
on line *90*

echo "User Keys " . gettype($userKey)."<br>\n"; confirms this is a
Array .. An I have tried casting $1::int[] in the prepare with no
luck..

I find a lot of hits on Google searches but no solutions..

Hoping someone here can assist me with this issue..

=============


From: Matthias Ritzkowski <matthiar(at)gmail(dot)com>
To: pgsql-php(at)postgresql(dot)org
Subject: Re: Looking for some assistance / guidance --
Date: 2014-07-29 01:03:47
Message-ID: 53D6F2F3.4050707@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-php

Is the array maybe zero-based?

Did you try 'select web.sendKeys$0, $1, $2, $3' ....

Regards
Matthias

On 7/28/14, 8:45 PM, Jeff Silberberg wrote:
> Good evening --
>
> I have a Wordpress / HTML form that includes <select size="5" multiple
> name=Keys[]"....>
>
> The form calls a PHP CGI program and if I set it to phpinfo() I see
> that the array Keys is in the post data. An I can do a $selectedKeys
> = $_POST('Keys') and walk through and echo out the array elements
> without a problem.
>
> My issues start when I attempt to pass the array of Keys to my
> PostgreSql function with a parameter list of (web_Keys_ integer[],
> web_text_ text, web_user_ text) ................
>
> in my php I do a pg_connect, and then prepare a number of statements
> all of which work but the last one.
>
> it is $return_cde = pg_prepare($conn, "SendKeys", 'select
> web.sendKeys$1, $2, $3)');.
>
> and I try to execute this with
>
> $userKey=$_POST['Keys'];
> $userText=$_POST['msgText'] . " / " . $current_user->display_name;
>
> $return = pg_execute($conn, "SendKeys", array($userKey,
> $userText, $current_user->display_name));
>
> Which returns and error --
>
>
> function.pg-execute
> <http://dispatch.dapage.net/cgi-bin/function.pg-execute>]: Query
> failed: ERROR: array value must start with "{" or dimension
> information in
> */home/xxxxxxx/public_html/enterkey/cgi-bin/xxxxxxcgi.php* on line
> *90*
>
>
> echo "User Keys " . gettype($userKey)."<br>\n"; confirms this
> is a Array .. An I have tried casting $1::int[] in the prepare
> with no luck..
>
> I find a lot of hits on Google searches but no solutions..
>
> Hoping someone here can assist me with this issue..
>
> =============
>
>


From: Jeff Silberberg <jms(at)dapage(dot)net>
To: Matthias Ritzkowski <matthiar(at)gmail(dot)com>
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: Looking for some assistance / guidance --
Date: 2014-07-29 01:26:28
Message-ID: CALWasQ=1E0R3DD=dawXsoWn5V=Fn+Q6JUvU9ygwA74vH_QP-bQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-php

Nope ---

http://php.net/manual/en/function.pg-prepare.

If any parameters are used, they are referred to in the query as $1,
$2, etc.

On Mon, Jul 28, 2014 at 9:03 PM, Matthias Ritzkowski <matthiar(at)gmail(dot)com>
wrote:

> Is the array maybe zero-based?
>
> Did you try 'select web.sendKeys$0, $1, $2, $3' ....
>
> Regards
> Matthias
>
>
> On 7/28/14, 8:45 PM, Jeff Silberberg wrote:
>
> Good evening --
>
> I have a Wordpress / HTML form that includes <select size="5" multiple
> name=Keys[]"....>
>
> The form calls a PHP CGI program and if I set it to phpinfo() I see that
> the array Keys is in the post data. An I can do a $selectedKeys =
> $_POST('Keys') and walk through and echo out the array elements without a
> problem.
>
> My issues start when I attempt to pass the array of Keys to my PostgreSql
> function with a parameter list of (web_Keys_ integer[], web_text_ text,
> web_user_ text) ................
>
> in my php I do a pg_connect, and then prepare a number of statements all
> of which work but the last one.
>
> it is $return_cde = pg_prepare($conn, "SendKeys", 'select
> web.sendKeys$1, $2, $3)');.
>
> and I try to execute this with
>
> $userKey=$_POST['Keys'];
> $userText=$_POST['msgText'] . " / " . $current_user->display_name;
>
> $return = pg_execute($conn, "SendKeys", array($userKey, $userText,
> $current_user->display_name));
>
> Which returns and error --
> function.pg-execute
> <http://dispatch.dapage.net/cgi-bin/function.pg-execute>]: Query failed:
> ERROR: array value must start with "{" or dimension information in
> */home/xxxxxxx/public_html/enterkey/cgi-bin/xxxxxxcgi.php* on line *90*
>
> echo "User Keys " . gettype($userKey)."<br>\n"; confirms this is a
> Array .. An I have tried casting $1::int[] in the prepare with no
> luck..
>
> I find a lot of hits on Google searches but no solutions..
>
> Hoping someone here can assist me with this issue..
>
> =============
>
>
>
>


From: Michael Wallner <mike(at)php(dot)net>
To: Jeff Silberberg <jms(at)dapage(dot)net>, pgsql-php(at)postgresql(dot)org
Subject: Re: Looking for some assistance / guidance --
Date: 2014-07-29 09:02:33
Message-ID: 53D76329.9080309@php.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-php

On 29/07/14 02:45, Jeff Silberberg wrote:

> echo "User Keys " . gettype($userKey)."<br>\n"; confirms this is
> a Array .. An I have tried casting $1::int[] in the prepare with no
> luck..
>

You have to format it as postgresql array string, so that it can be
parsed as array by the server, e.g: '{1,2,3}'::int[]

So, assuming they keys are integers:
$userKey = "{".implode(",",array_map("intval", $userKey))."}::int[]";

--
Regards,
Mike


From: Jeff Silberberg <jms(at)dapage(dot)net>
To: Michael Wallner <mike(at)php(dot)net>
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: Looking for some assistance / guidance --
Date: 2014-07-29 13:09:23
Message-ID: CALWasQm2i3isreNgi=+fnt2c0CtueeLirCMyCp+A3EEeGOFf0w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg토토SQL : Postg토토SQL 메일 링리스트 : 2014-07-29 이후 PGSQL-PHP 13:09

Michael,

About three am I woke up with this same basic thought in my head..

Will try it latter this morning, but I suspect this is the correct
answer.

Thank you !

On Tue, Jul 29, 2014 at 5:02 AM, Michael Wallner <mike(at)php(dot)net> wrote:

> On 29/07/14 02:45, Jeff Silberberg wrote:
>
> > echo "User Keys " . gettype($userKey)."<br>\n"; confirms this is
> > a Array .. An I have tried casting $1::int[] in the prepare with no
> > luck..
> >
>
> You have to format it as postgresql array string, so that it can be
> parsed as array by the server, e.g: '{1,2,3}'::int[]
>
> So, assuming they keys are integers:
> $userKey = "{".implode(",",array_map("intval", $userKey))."}::int[]";
>
> --
> Regards,
> Mike
>