MYSQL insert

I’m trying to insert values from a variable into a test MYSQL. It works
from a fixed value but not if the value is in a variable.

require ‘mysql’
$test = “ABC”

#db.query(‘insert into etf_list values ($test)’)
>> in `query’: Column ‘test’ cannot be null (Mysql::Error)

db.query(‘insert into etf_list values (“ABC”)’)
>> Works

Thanks
Jeff B.

On Mon, Jul 13, 2009 at 17:12, Jeff B.[email protected] wrote:

I’m trying to insert values from a variable into a test MYSQL. It works
from a fixed value but not if the value is in a variable.

require ‘mysql’
$test = “ABC”

#db.query(‘insert into etf_list values ($test)’)

in `query’: Column ‘test’ cannot be null (Mysql::Error)

use double quotes, and enclose with "#{}". single quotes don’t
expand variables.
i.e. db.query(|insert into etf_list values ("#{$test}")")

j.

On Jul 13, 2009, at 11:24 AM, Jano S. wrote:

use double quotes, and enclose with "#{}". single quotes don’t
expand variables.
i.e. db.query(|insert into etf_list values ("#{$test}")")

j.

Also, this is ruby, not perl. Unless you have a "really good
reason"™ for using $test which is a global variable, you probably
just need a plain old local varialble here:

test = “ABC” # or test=‘ABC’ since either style of quotes is fine
for most strings with no interpolation

db.query(“insert into etf_list values ("#{test}")”)

There’s actually another form of string literal that I often find
useful when quotes are concerned: %{}
(and you can leave out the parentheses in many instances and, IMHO,
this is one)[1]

db.query %{insert into etf_list values (“#{test}”)}

-Rob

[1] You might also take a few minutes to read James Edward G. II’s
post about when to use parentheses and when to leave them out.
http://blog.grayproductions.net/articles/
do_i_need_these_parentheses

Rob B. http://agileconsultingllc.com
[email protected]