В скрипте ruby, который отправляет информацию в TWILIO API, у меня есть строка символов символов, которую выводит API (Twilio's). Затем я получаю консольный вывод, поэтому я могу сохранить его как переменную и повторно использовать его позже:
@client = Twilio::REST:Client.new account_sid, auth_token
call = @client.account.calls.create({:from => 'incoming', :to => 'outgoing', :url => 'url', :method => 'GET'})
puts call.sid
Эта часть функциональна, но теперь, когда я переименовал переменную (//@incoming_Cid = call.sid//), чтобы ввести ее в базу данных MySQL, я столкнулся с проблемой. (Идентификатор 34 символов имеет номера и буквы, поэтому я определяю тип данных как VARCHAR).
begin
dbh = DBI.connect("DBI:Mysql:db_name:localhost", "user", "pass")
dbh.do("INSERT INTO calls (column_name)"
#//Выберите столбец для вставки
"VALUES (incoming_Cid)")
Вставить 34 символа.
dbh.commit
puts "Customer SID has been recorded"
rescue
puts "A database occurred"
puts "Error code: #{e.err}"
puts "Error message: #{e.errstr}"
ensure
dbh.disconnect if dbh
end
Прямо здесь, на dbh.do (строка "INSERT INTO calls", если я помещаю переменную incoming_Cid в VALUES() вместо того, чтобы видеть строку 34-char, например CA9321a83241035b4c3d3e7a4f7aa6970d, я буквально вижу, что " incoming_Cid " появляется в базе данных, когда я выполнить select * in calls
.
Как я могу решить эту проблему?
Вы должны использовать интерполяцию строк: "VALUES (#{@incoming_Cid})"
"VALUES (#{@incoming_Cid})"
возможно?