Toggle navigation
PostgreSQL中文社区
首页
(current)
社区新闻
中文文档
加入ACE
相关资料
了解PostgreSQL
PostgreSQL相关文档
PostgreSQL软件下载
PostgreSQL中文图书
社区年会PPT资料
关于中文社区
注册
登录
全部
Bug
使用技巧
内容问题
建议
系统安装
集群复制
其他
首页
有问有答(FAQ)
【%E5%86%85%E5%AE%B9%E9%97%AE%E9%A2%98】
类主题列表
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中文社区