Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 在SQLite中更新记录?_Ruby_Sqlite - Fatal编程技术网

Ruby 在SQLite中更新记录?

Ruby 在SQLite中更新记录?,ruby,sqlite,Ruby,Sqlite,此代码不会更改person表中fullname列中的数据,也不会产生错误。 我使用变量$editKey获取要编辑的记录,因此它按计划工作: def upDateRecord getInputs puts $editKey puts $fullname db = SQLite3::Database.open "ruby-test-02.db" db.execute "UPDATE person SET fullname = $fullname WHERE ID = $edit

此代码不会更改
person
表中
fullname
列中的数据,也不会产生错误。 我使用变量
$editKey
获取要编辑的记录,因此它按计划工作:

def upDateRecord
  getInputs
  puts $editKey
  puts $fullname

  db = SQLite3::Database.open "ruby-test-02.db"
  db.execute "UPDATE person SET fullname = $fullname WHERE ID = $editKey"
rescue SQLite3::Exception => e 
  puts "Exception occured"
  puts e
ensure
  db.close

  puts $editKey
  puts $fullname      
end
解决

def更新记录 将“在更新记录中” 获取输入

  db = SQLite3::Database.new "ruby-test-02.db"
  stm = db.prepare "UPDATE person Set fullname=? WHERE ID=?"; stm.bind_param 1, $fullname; stm.bind_param 2, $editKey;stm.execute;stm.close
  stm = db.prepare "UPDATE person Set sex=? WHERE ID=?"; stm.bind_param 1, $sex; stm.bind_param 2, $editKey;stm.execute;stm.close
  stm = db.prepare "UPDATE person Set birth=? WHERE ID=?"; stm.bind_param 1, $birth; stm.bind_param 2, $editKey;stm.execute;stm.close
  stm = db.prepare "UPDATE person Set death=? WHERE ID=?"; stm.bind_param 1, $death; stm.bind_param 2, $editKey;stm.execute;stm.close
营救SQLite3::异常=>e 放置“发生异常” 放e 确保 db.close
end

db.execute“updateperson SET fullname=#{$fullname},其中ID=#{$editKey}”
应该是workRuby不是PHP。您可能想阅读一本关于ruby的介绍性书籍(以及ruby对变量的处理以及字符串插值)。此外,在ruby
$foo
中,它是一个全局变量(除非在非常特定的情况下,否则不应该使用它)。此外,在ruby中,变量和方法是使用snake_case编写的,类是CamelCase。另外,考虑使用类似ORM的工具。是的,你提供的解决方案不起作用;但感谢可能的副本