0
mysql2 gemでmysqlデータベースにアクセスします。私はそれが動作する機能を設定除外するとRuby:set関数を使用するとmysqlがエラーをスローする
Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT * from admins' at line 1
:
conn.query("SET @showcurrent := false; SELECT * from admins;"
)
は私にエラーがスローされます。どうすればset
機能で動作させることができますか?
conn.query("SELECT * from admins;"
)
=> #<Mysql2::Result:0x00ff8557af200 @query_options={:as=>:hash, :async=>false, :cast_booleans=>false, :symbolize_keys=>false, :database_timezone=>:local, :application_timezone=>nil, :cache_rows=>true, :connect_flags=>bla, :cast=>true, :default_file=>nil, :default_group=>nil, :host=>"bla1", :username=>"bla", :password=>"bla", :database=>"bla", :port=>3007}>
は動作しません。 'Mysql2 :: Error:あなたはSQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文が '1行目のSELECT * from admins'の近くで使用されていることを確認してください。 – Tonja
これはどうでしょう:conn.query( "SELECT *、@ showcurrent:= admins; ) ' – eiko
これを行うと@showcurrentは設定されないので、後でクエリで使用するたびに評価されません。 setの考え方は、この変数に特定の値を割り当て、後でそれにアクセスすることです。 – Tonja