Re: MonetDB-PHP Error on parameterized query with timestamp
Hi Sjoerd,
Thank you for getting back to me.
My colleague tested what you suggested and got the same error so it is still failing. He is certain he is passing the correct value as he is able to execute the same query in raw format, so he believed it has to do with the way params are implemented. I'm no expert but he said it looks like an error from C language.
Please advise.
Thank you.
Regards,
Kevork Vartanian
________________________________
From: users-list
Hai Kevork,
Our MonetDB/PHP expert has answered this question in Stack Overflow:
https://stackoverflow.com/questions/65077831/monetdb-php-error-on-parameteri...
For users on this list, this is the Stack Overflow answer:
the problem is that the "birth_date" field is not of a "date-time" type, but it's "date" only. So just remove "12:37:16" and it will work. The "char" type is converted to "date" by MonetDB itself, "date" doesn't have a specific literal in the SQL language. This works, I tested:
$result = $connection->Query(<<
On 7 Dec 2020, at 04:23, Kevork Vartanian
wrote: Hi Sjoerd,
Thank you for getting back to me.
My colleague tested what you suggested and got the same error so it is still failing. He is certain he is passing the correct value as he is able to execute the same query in raw format, so he believed it has to do with the way params are implemented. I'm no expert but he said it looks like an error from C language.
Please advise.
Thank you.
Regards,
Kevork Vartanian
From: users-list
mailto:users-list-bounces+kev=innotta.com.au@monetdb.org> on behalf of users-list-request@monetdb.org mailto:users-list-request@monetdb.org mailto:users-list-request@monetdb.org> Sent: Friday, 4 December 2020 10:00 PM To: users-list@monetdb.org mailto:users-list@monetdb.org mailto:users-list@monetdb.org> Subject: users-list Digest, Vol 100, Issue 2 Send users-list mailing list submissions to users-list@monetdb.org mailto:users-list@monetdb.org
To subscribe or unsubscribe via the World Wide Web, visit https://www.monetdb.org/mailman/listinfo/users-list https://www.monetdb.org/mailman/listinfo/users-list or, via email, send a message with subject or body 'help' to users-list-request@monetdb.org mailto:users-list-request@monetdb.org
You can reach the person managing the list at users-list-owner@monetdb.org mailto:users-list-owner@monetdb.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of users-list digest..."
Today's Topics:
1. MonetDB-PHP Error on parameterized query with timestamp (Kevork Vartanian) 2. Re: MonetDB-PHP Error on parameterized query with timestamp (Sjoerd Mullender)
----------------------------------------------------------------------
Message: 1 Date: Fri, 4 Dec 2020 00:11:59 +0000 From: "Kevork Vartanian"
mailto:kev@innotta.com.au> To: "users-list@monetdb.org mailto:users-list@monetdb.org" mailto:users-list@monetdb.org> Subject: MonetDB-PHP Error on parameterized query with timestamp Message-ID: mailto:SYBP282MB0346DC1924EC1C610E29428B81F10@SYBP282MB0346.AUSP282.PROD.OUT...> Content-Type: text/plain; charset="iso-8859-1"
Hi,
The below is from my colleague who is not a member on this list, so I'm sending on his behalf.
I'm using MonetDB with MonetDB-PHP library.
I have followed the documentation from: https://github.com/MonetDB/MonetDB-PHP https://github.com/MonetDB/MonetDB-PHP
Everything is working fine, but if I set parameter for timestamp type column I get the following error:
Error from MonetDB: 42000!Wrong type for argument 1 of function call: char, expected timestamp
For example, this is working:
$result = $connection->Query(' select * from "cats" where "name" = ? and "weight_kg" > ? limit 10', [ "D'artagnan", 5.3 ]);
but this will not work:
$result = $connection->Query(' select * from "cats" where "name" = ? and "weight_kg" > ? and "birthdate" < ? // timestamp data type limit 10 ', [ "D'artagnan", 5.3, "2020-02-28 12:37:16" ]);
The error occurs for any column that is of timestamp type and only when passing value as parameter.
What am I doing wrong?
Thank you.
Regards,
Kevork Vartanian
This email correspondence may contain privileged information and it is intended to be transmitted to the addressee abovementioned. If you are not the intended recipient of this email correspondence, you must not distribute, copy, forward or rely upon its contents. We ask that you notify the sender of this error and immediately delete this email correspondence.
FYI, this error has really been resolved. Deployed a fix under version 1.1.3., for more info see Stack Overflow: - https://stackoverflow.com/questions/65077831/monetdb-php-error-on-parameteri... https://stackoverflow.com/questions/65077831/monetdb-php-error-on-parameteri... Updated the user doc: - https://github.com/MonetDB/MonetDB-PHP#example-3-parameterized-query-with-pr... https://github.com/MonetDB/MonetDB-PHP#example-3-parameterized-query-with-pr... And the protocol doc: - https://github.com/MonetDB/MonetDB-PHP/blob/master/protocol_doc/README.md#7-... https://github.com/MonetDB/MonetDB-PHP/blob/master/protocol_doc/README.md#7-...
On 8 Dec 2020, at 10:45, Ying Zhang
wrote: Hai Kevork,
Our MonetDB/PHP expert has answered this question in Stack Overflow:
https://stackoverflow.com/questions/65077831/monetdb-php-error-on-parameteri... https://stackoverflow.com/questions/65077831/monetdb-php-error-on-parameteri...
For users on this list, this is the Stack Overflow answer:
the problem is that the "birth_date" field is not of a "date-time" type, but it's "date" only. So just remove "12:37:16" and it will work. The "char" type is converted to "date" by MonetDB itself, "date" doesn't have a specific literal in the SQL language. This works, I tested:
$result = $connection->Query(<<
? and "birth_date" < ? limit 10 EOF , [ "D'artagnan", 5.3, "2020-02-28" ]); Regards, Jennie
On 7 Dec 2020, at 04:23, Kevork Vartanian
mailto:kev@innotta.com.au> wrote: Hi Sjoerd,
Thank you for getting back to me.
My colleague tested what you suggested and got the same error so it is still failing. He is certain he is passing the correct value as he is able to execute the same query in raw format, so he believed it has to do with the way params are implemented. I'm no expert but he said it looks like an error from C language.
Please advise.
Thank you.
Regards,
Kevork Vartanian
From: users-list
mailto:users-list-bounces+kev=innotta.com.au@monetdb.org> on behalf of users-list-request@monetdb.org mailto:users-list-request@monetdb.org mailto:users-list-request@monetdb.org> Sent: Friday, 4 December 2020 10:00 PM To: users-list@monetdb.org mailto:users-list@monetdb.org mailto:users-list@monetdb.org> Subject: users-list Digest, Vol 100, Issue 2 Send users-list mailing list submissions to users-list@monetdb.org mailto:users-list@monetdb.org
To subscribe or unsubscribe via the World Wide Web, visit https://www.monetdb.org/mailman/listinfo/users-list https://www.monetdb.org/mailman/listinfo/users-list or, via email, send a message with subject or body 'help' to users-list-request@monetdb.org mailto:users-list-request@monetdb.org
You can reach the person managing the list at users-list-owner@monetdb.org mailto:users-list-owner@monetdb.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of users-list digest..."
Today's Topics:
1. MonetDB-PHP Error on parameterized query with timestamp (Kevork Vartanian) 2. Re: MonetDB-PHP Error on parameterized query with timestamp (Sjoerd Mullender)
----------------------------------------------------------------------
Message: 1 Date: Fri, 4 Dec 2020 00:11:59 +0000 From: "Kevork Vartanian"
mailto:kev@innotta.com.au> To: "users-list@monetdb.org mailto:users-list@monetdb.org" mailto:users-list@monetdb.org> Subject: MonetDB-PHP Error on parameterized query with timestamp Message-ID: mailto:SYBP282MB0346DC1924EC1C610E29428B81F10@SYBP282MB0346.AUSP282.PROD.OUT...> Content-Type: text/plain; charset="iso-8859-1"
Hi,
The below is from my colleague who is not a member on this list, so I'm sending on his behalf.
I'm using MonetDB with MonetDB-PHP library.
I have followed the documentation from: https://github.com/MonetDB/MonetDB-PHP https://github.com/MonetDB/MonetDB-PHP
Everything is working fine, but if I set parameter for timestamp type column I get the following error:
Error from MonetDB: 42000!Wrong type for argument 1 of function call: char, expected timestamp
For example, this is working:
$result = $connection->Query(' select * from "cats" where "name" = ? and "weight_kg" > ? limit 10', [ "D'artagnan", 5.3 ]);
but this will not work:
$result = $connection->Query(' select * from "cats" where "name" = ? and "weight_kg" > ? and "birthdate" < ? // timestamp data type limit 10 ', [ "D'artagnan", 5.3, "2020-02-28 12:37:16" ]);
The error occurs for any column that is of timestamp type and only when passing value as parameter.
What am I doing wrong?
Thank you.
Regards,
Kevork Vartanian
This email correspondence may contain privileged information and it is intended to be transmitted to the addressee abovementioned. If you are not the intended recipient of this email correspondence, you must not distribute, copy, forward or rely upon its contents. We ask that you notify the sender of this error and immediately delete this email correspondence.
participants (2)
-
Kevork Vartanian
-
Ying Zhang