Обсуждение: Looking for some assistance / guidance --
Good evening --
$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]: 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..
=============
=============
Is the array maybe zero-based?
Did you try 'select web.sendKeys$0, $1, $2, $3' ....
Regards
Matthias
Did you try 'select web.sendKeys$0, $1, $2, $3' ....
Regards
Matthias
On 7/28/14, 8:45 PM, Jeff Silberberg wrote:
and I try to execute this withit is $return_cde = pg_prepare($conn, "SendKeys", 'select web.sendKeys$1, $2, $3)');.in my php I do a pg_connect, and then prepare a number of statements all of which work but the last one.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) ................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.Good evening --I have a Wordpress / HTML form that includes <select size="5" multiple name=Keys[]"....>
$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]: 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..
=============
Nope ---
http://php.net/manual/en/function.pg-prepare.
If any parameters are used, they are referred to in the
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@gmail.com> wrote:
Is the array maybe zero-based?
Did you try 'select web.sendKeys$0, $1, $2, $3' ....
Regards
MatthiasOn 7/28/14, 8:45 PM, Jeff Silberberg wrote:and I try to execute this withit is $return_cde = pg_prepare($conn, "SendKeys", 'select web.sendKeys$1, $2, $3)');.in my php I do a pg_connect, and then prepare a number of statements all of which work but the last one.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) ................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.Good evening --I have a Wordpress / HTML form that includes <select size="5" multiple name=Keys[]"....>
$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]: 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..
=============
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
Michael,
About three am I woke up with this same basic thought in my head.. On Tue, Jul 29, 2014 at 5:02 AM, Michael Wallner <mike@php.net> wrote:
On 29/07/14 02:45, Jeff Silberberg wrote:You have to format it as postgresql array string, so that it can be
> 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..
>
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