通过Web服务插入数据库

时间:2016-06-18 08:44:46

标签: mysql ruby-on-rails web-services

我正在尝试通过Web服务将用户插入我的数据库,但每次尝试这样做时,Web服务都会返回以下错误: TinyTds ::错误:INSERT语句中的列多于VALUES子句中指定的值。 我没有看到问题,因为每个陈述中有5个值。

post '/insert_users/' do
conn = TinyTds::Client.new(...)
username = params[:username]
password = params[:password]
phone_number = params[:phone_number]
profile_state = params[:profile_state]
clasa = params[:clasa]
sql = "insert into ServerUsers(Username, Passwords,Phone_Number, Profile_State, Class) values('username, password, phone_number, profile_state, clasa')"
cursor = conn.execute(sql)
end

这是我尝试通过Web服务插入数据库的方式:

http://address:port/insert_users/?username=user3&password=parola3&phone_number=0723567432&profile_state=A&clasa=2

我正在使用Advanced REST客户端来测试Web服务。

我在这里使用了教程:https://github.com/rails-sqlserver/tiny_tds

1 个答案:

答案 0 :(得分:1)

您必须只引用字符串:

从以下位置更改:

sql = "insert into ServerUsers(Username, Passwords,Phone_Number, Profile_State, Class) values('username, password, phone_number, profile_state, clasa')"

sql = "insert into ServerUsers(Username, Passwords,Phone_Number, Profile_State, Class) values('#{username}', '#{password}', '#{phone_number}', #{profile_state}, '#{clasa')"

我不知道如何引用每个字符串