SQLite3在创建表时使用变量?
我希望在使用 Ruby 和 SQLite3 创建表时将表名作为变量传递。
这是我到目前为止所得到的:
$db.execute %q{
CREATE TABLE @tableName (
id integer primary key,
term varchar(100),
meaning varchar(100))
}
$db 被定义为
$db = SQLite3::Database.new("test.db")
$db.results_as_hash = true
@tableName 是用户输入。我可以看到它不喜欢@tableName,但我不知道如何解决这个问题。
I am hoping to pass a table name as a variable when I am creating a table with Ruby and in SQLite3.
Here is what I have so far:
$db.execute %q{
CREATE TABLE @tableName (
id integer primary key,
term varchar(100),
meaning varchar(100))
}
$db is defined as
$db = SQLite3::Database.new("test.db")
$db.results_as_hash = true
@tableName is user input. I can see that it doesn't like the @tableName, but I don't know how to work around that.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
%q 是单引号替代,插值在单引号字符串内不起作用。
同样,在 ruby 中,插值是通过 #{} 完成的,如
“Welcome #{name}”
中所示。我会尝试:
%q is a single quote alternative, interpolation does not work inside single quoted strings.
Also in ruby interpolation is done with #{}, like in
"Welcome #{name}"
.I would try:
只需使用普通的字符串插值:
请注意,我将您的
%q{}
引用切换为%Q{}
以使插值正常工作。Just use normal string interpolation:
Note that I switched your
%q{}
quoting to%Q{}
to get the interpolation to work.