【发布时间】:2017-02-10 22:52:24
【问题描述】:
我正在学习一个尝试学习将 Ruby 连接到数据库的基础知识的教程。目前,我有一个程序使用 twilio 接收短信,并根据您所说的发回一条消息。我正在尝试使用 SQLite3 将电话号码和消息的许多其他部分存储到数据库中,但是每当我运行代码时,数据库中都没有条目。这里是。
require 'twilio-ruby'
require 'google_places'
require 'sinatra'
require 'dotenv'
require 'sqlite3'
begin
db = SQLite3::Database.open "test.db"
db.execute "CREATE TABLE IF NOT EXISTS Entries(Id INTEGER PRIMARY KEY AUTOINCREMENT, Searched TEXT, Place TEXT, Number BLOB)"
begin
db.execute "CREATE TABLE IF NOT EXISTS Entries(Id INTEGER PRIMARY KEY AUTOINCREMENT, Searched TEXT, Place TEXT, Number BLOB)"
db.execute("INSERT INTO Entries (Searched, Place, Number) VALUES(?,?,?)", @incoming, @best_place_fmt, @phonenumber)
rescue SQLite3::Exception => e
puts "Exception occurred"
puts e
#ensure
# stm.close if stm
# db.close if db
end
所有的 twilio 函数都工作并且接收到消息并发送了一条消息,但是没有一个数据库命令实际上正在编辑文件。感谢您的帮助!
【问题讨论】:
-
嗨,欢迎来到 SO - twilio 的东西似乎与您面临的问题本质上无关,对吗?如果是这样,您可以通过将您的答案缩减到代码的 DB 位来使回答者的生活更轻松(因此使您更有可能获得有用的回复) - 查看minimal reproducible example 了解更多信息:)
-
您希望 SQLite 代码何时执行?你期望当前目录是什么?
test.db创建了吗?test.db的权限是什么? -
如果将 SQL 粘贴到 SQLite CLI 中,它是否有效?sqlite.org/cli.html
-
除了你的实际问题:你有没有想过像Sequel(我最喜欢的)或Active Record这样的ORM(你不需要rails来使用它,ORM是独立的并且可以在没有导轨的情况下使用。)优点:您可以稍后更改数据库。
标签: sql ruby database sqlite sqlite3-ruby