postgresql - postgres-rust 错误 42601(常见语法错误):正确发布变量表名?
问题描述
货物.toml:
[dependencies]
rocket = "0.4.4"
rocket_cors = "0.5.2"
postgres = "0.15.2"
r2d2_postgres = "0.14.0"
r2d2 = "0.8.0"
rocket_contrib = "0.4.4"
serde_json = "1.0.53"
我正在尝试使用以下格式在 rust-postgres 中发出变量表名!宏,以便 rust 可以处理连接本身。state.val.get().unwrap().execute()
等价connection.execute()
于postgres::PostgresConnectionManager::new()
. 这是片段:
let data_u8: &[u8] = data.peek();
let data_str: &str = str::from_utf8(&data_u8).unwrap();
let data_json: serde_json::Value = serde_json::from_str(&data_str).unwrap();
let table_name = data_json["broadcast_category"].to_string().replace(&['\"'][..], "");
let table_create = format!("CREATE TABLE IF NOT EXISTS category_{} (
message VARCHAR NOT NULL,
name VARCHAR NOT NULL,
)", table_name);
let table_create_ref: &str = &table_create[..];
println!("Table Create fn: {}", table_create);
state.val.get().unwrap().execute(table_create_ref, &[]).unwrap();
我只在编译时收到以下错误:(data_json["broadcast_category"]
是serde_json::Value
从用户的 POST 请求中收到的包装器的一部分。
错误:
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: Error(Db(DbError { severity: "ERROR", parsed_severity: Some(Error), code: SqlState("42601"), message: "syntax error at or near \"$1\"", detail: None, hint: None, position: Some(Normal(59)), where_: None, schema: None, table: None, column: None, datatype: None, constraint: None, file: Some("scan.l"), line: Some(1133), routine: Some("scanner_yyerror") }))', src\main.rs:60:9
** src\main.rs:60:9 =state.val.get().unwrap().execute(table_create_ref, &[]).unwrap();
一如既往,感谢您的努力和支持,我们感谢您对社区的参与。
解决方案
推荐阅读
- javascript - WEBHID API:Inputreport 不使用条码扫描器触发
- c# - 是否可以通过编程方式禁用来自 HttpSys 的日志?
- git - 在 GitLab 存储迁移到散列后修复子模块 url 位置
- dart - 在 Dart null 安全之后如何对 null 值进行多重检查?
- visual-studio-code - 如何修复在 VScode 上找不到的“stdio.h”文件
- python - 如何在python中绘制反函数?
- python - 为所有比较定义类属性
- hibernate - 添加 Jadira 依赖项后出现 Quarkus 错误
- node.js - 如何修复 Node.js 中的“参考错误:未定义消息”
- reactjs - 无法将 Form 与类组件一起使用