Sql 如何通过Node.js将动态字符串附加到Postgres中的文本类型列?

Sql 如何通过Node.js将动态字符串附加到Postgres中的文本类型列?,sql,node.js,postgresql,Sql,Node.js,Postgresql,我正在尝试更新Node.js的Postgres中的文本类型列。我想向文本类型列中的数据追加一个动态字符串 但我犯了个错误 “错误:无法确定参数$1的数据类型” var pg=require('pg'); var connectionString=process.env.DATABASE_URL | |“pg://admin:guest@localhost:5432/图像搜索实验”; var client=新的pg.client(connectionString); client.connect

我正在尝试更新Node.js的
Postgres中的
文本类型列。我想向文本类型列中的数据追加一个动态字符串

但我犯了个错误

“错误:无法确定参数$1的数据类型”

var pg=require('pg');
var connectionString=process.env.DATABASE_URL | |“pg://admin:guest@localhost:5432/图像搜索实验”;
var client=新的pg.client(connectionString);
client.connect();
query(“如果存在,则删除表imagesearchexperiment”);
query(“如果不存在,则创建表imagesearchexperiment(ipAddress varchar(64),searchqueries text)”;
query(“插入ImageSearchExperience(ipAddress,searchqueries)值($1,$2)”,[“ipAddress1”,“query1query2query3]”);
query(“插入ImageSearchExperience(ipAddress,searchqueries)值($1,$2)”,[“ipAddress2”,“query1query2query3]”);
query(“插入ImageSearchExperience(ipAddress,searchqueries)值($1,$2)”,[“ipAddress3”,“query1query2query3]”);
var searchQuery=“query4”;
var ip=“ipAddress3”;
//以下行导致错误-错误:无法确定参数$1的数据类型

query(“更新imagesearchexperiment集searchqueries=CONCAT($1,searchqueries),其中ipAddress=$2,[searchQuery,ip])函数
CONCAT
不确定它获取的数据类型。显式类型转换为
::text
将有助于:

CONCAT($1::text, searchqueries)

尝试
CONCAT($1::text,searchquerys)
;)如果您确定所有字符串均为
null
,则可以使用
$1 | | searchqueries
——这会发生,因为
CONCAT()
使用(更具体地说是
any
)。因此,您必须始终使用参数进行调用,查询解析器知道这些参数的类型。您可以在SQL中使用强制转换来实现这一点(如之前所建议的),或者(通常)可以通过绑定设置参数类型(在准备语句的情况下):但这在很大程度上取决于您的客户端库。@vitaly-t谢谢:),它现在可以工作了
UPDATE imagesearchexperiment SET searchqueries = '"+ searchqueries="' WHERE ipAddress = "'+ ip+'"