MonetDB-PHP 带时间戳的参数化查询出错
MonetDB-PHP Error on parameterized query with timestamp
我正在将 MonetDB 与 MonetDB-PHP 库一起使用。
我遵循了以下文档:https://github.com/MonetDB/MonetDB-PHP
一切正常,但如果我为时间戳类型列设置参数,我会收到以下错误:
Error from MonetDB: 42000!Wrong type for argument 1 of function call: char, expected timestamp
例如,
这是有效的:
$result = $connection->Query(<<<EOF
select
*
from
"cats"
where
"name" = ?
and "weight_kg" > ?
limit
10
EOF
, [ "D'artagnan", 5.3 ]);
但这行不通:
$result = $connection->Query(<<<EOF
select
*
from
"cats"
where
"name" = ?
and "weight_kg" > ?
and "birthdate" < ?
limit
10
EOF
, [ "D'artagnan", 5.3, "2020-02-28 12:37:16" ]);
任何时间戳类型的列都会发生错误,并且仅当将值作为参数传递时才会发生。
我做错了什么?
编辑:
这是我正在使用的实际 table
CREATE TABLE sys.url_data (
userid varchar(50),
groupid varchar(50),
category varchar(50),
url varchar(1024),
datetime timestamp
);
“日期时间”是我在查询中使用的列
已部署修复程序。更新到版本 1.1.3
。 timestamp
值必须作为 DateTime
对象传递。
以你的例子 table 看起来像:
$dt = DateTime::createFromFormat("Y-m-d H:i:s", "2020-02-28 12:37:16");
$result = $connection->Query(<<<EOF
select
*
from
sys.url_data
where
datetime > ?
EOF
, [ $dt ]);
也要使用微秒:
$dt = DateTime::createFromFormat("Y-m-d H:i:s.u", "2020-02-28 12:37:16.123456");
还更新了准备好的语句的文档:
我正在将 MonetDB 与 MonetDB-PHP 库一起使用。
我遵循了以下文档:https://github.com/MonetDB/MonetDB-PHP
一切正常,但如果我为时间戳类型列设置参数,我会收到以下错误:
Error from MonetDB: 42000!Wrong type for argument 1 of function call: char, expected timestamp
例如,
这是有效的:
$result = $connection->Query(<<<EOF
select
*
from
"cats"
where
"name" = ?
and "weight_kg" > ?
limit
10
EOF
, [ "D'artagnan", 5.3 ]);
但这行不通:
$result = $connection->Query(<<<EOF
select
*
from
"cats"
where
"name" = ?
and "weight_kg" > ?
and "birthdate" < ?
limit
10
EOF
, [ "D'artagnan", 5.3, "2020-02-28 12:37:16" ]);
任何时间戳类型的列都会发生错误,并且仅当将值作为参数传递时才会发生。
我做错了什么?
编辑: 这是我正在使用的实际 table
CREATE TABLE sys.url_data (
userid varchar(50),
groupid varchar(50),
category varchar(50),
url varchar(1024),
datetime timestamp
);
“日期时间”是我在查询中使用的列
已部署修复程序。更新到版本 1.1.3
。 timestamp
值必须作为 DateTime
对象传递。
以你的例子 table 看起来像:
$dt = DateTime::createFromFormat("Y-m-d H:i:s", "2020-02-28 12:37:16");
$result = $connection->Query(<<<EOF
select
*
from
sys.url_data
where
datetime > ?
EOF
, [ $dt ]);
也要使用微秒:
$dt = DateTime::createFromFormat("Y-m-d H:i:s.u", "2020-02-28 12:37:16.123456");
还更新了准备好的语句的文档: