Toggle navigation
PostgreSQL中文社区
首页
(current)
社区新闻
中文文档
加入ACE
相关资料
了解PostgreSQL
PostgreSQL相关文档
PostgreSQL软件下载
PostgreSQL中文图书
社区年会PPT资料
关于中文社区
注册
登录
全部
Bug
使用技巧
内容问题
建议
系统安装
集群复制
其他
首页
有问有答(FAQ)
【内容问题】
类主题列表
1836835420
postgresql提供了C语言的libpq接口 有表test((id int, ...
... 2016-08-23 11:14:26+08...1楼
postgresql提供了C语言的libpq接口 有表test((id int,name varchar) insert into test values(1056,'postgresa') insert into test values(1055,'postgresb') insert into test values(1057,'postgresc') 如果: 在C程序里面 paramValues[0] = "1056"; res = PQexecParams(conn,"select * from test where id = $1;",1,NUll,paramValues,NULL,NULL,0); 可以正常执行 如果 paramValues[0] = "id";(此处不让这个变量值为表中的一个值,而是赋值为一个字段的名字) res = PQexecParams(conn,"select * from test where $1 = 1056;",1,NULL,paramValues,NULL,NULL,0); 这样的话就无法正确执行了,会返回错误信息 The database operation failed : ERROR: invalid input syntax for integer: "id" 或者paramValues[0] = "id" res = PQexecParams(conn,"select * from test order by $1 asc;",1,NULL,paramValues,NULL,NULL,0); 输出的结果 id name 1056 postgresa 1055 postgresb 1057 postgresc 并没有进行排序 这样的话就是无法把字段值作为一个参数放到sql语句中了,不知道是我有的参数没有照顾到还是这样根本行不通,如果不行的话有没有什么解决的办法呢?
我的签名:
您还没有登录,请您登录后再发表回复
© 2010 PostgreSQL中文社区