Регистрация данных ПК в базу данных через Ruby проблема

#mysql #ruby

#mysql #ruby

Вопрос:

 require 'os'
require 'socket'    
require 'mysql2'    
require 'etc'    
require 'time'

def getBits    
    return OS.bits.to_s    
end

def getPCName
    return Socket.gethostname
end

def getUser    
    return Etc.getlogin    
end    

info = Hash["SYSBITS " => getBits,"PCN " => getPCName,"USER " => getUser]

for h in info.keys    
    print h.chomp    
end

for b in info.values    
    print b.chomp    
end

connection = Mysql2::Client.new(:host => "localhost", :username => "root",:password => "",:database => "ruby")

result = connection.query("INSERT INTO `mydata`(`#{h}`) VALUES ('#{b}')")
 

Итак, идея здесь состоит в том, чтобы сделать хэш возвращаемой информации, а затем использовать хэш-ключи в качестве столбцов и хэш-значения в виде строк в запросе mysql, но это не работает.
Я добавил разделение вручную, потому что не вижу другого способа.

Это ошибка, которую я получаю:

 _query': Unknown column 'USER ' in 'field list' (Mysql2::Error)
 

Комментарии:

1. Не забывайте использовать значения-заполнители и избегать интерполяции строк, которая создает ошибки SQL-инъекций .

2. Почему после ввода ПОЛЬЗОВАТЕЛЯ есть пробел 'USER ' ?

3. можете ли вы вывести строковое значение запроса, прежде чем пытаться его передать?

4. Как называются столбцы в базе данных? Действительно ли они все upcase?