LINUX.ORG.RU

[ruby][mysql]в сердце пятница, а на экране код

 ,


0

0
            temporary_results.each do |row|
                #values << "(#{row.map{|x| curr_db.quote(x) }.join(", ")})"
                #values << "(#{row.map{|x| x ? curr_db.quote(x) : x }.join(", ")})"
                row_s = row.map{|x| x && x.class == 'String' ? ('"' + x + '"') : x }
                #p row
                values << "(#{row_s.join(", ")})"
                #p values
            end
            sql_query << "(#{values.join(",\n")})"

выхлоп

"INSERT INTO user_app\n(email, product, country, guid, appid_str, created)\nVALUES\n((jhaynie@appcelerator.com, 4006, US, bd8451ea-272c-4fce-9d06-292582633831, com.appcelerator.memory, 2009-11-21 11:41:23),\n(nospam-appcelerator@turdhead.com, , , ce38b521-e208-4c14-b782-5eb3bf90de10, jj.j, 2009-11-22 13:05:08))"
./analytics_reports:441:in `query': 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 '@appcelerator.com, 4006, US, bd8451ea-272c-4fce-9d06-292582633831, com.appcelera' at line 4 (Mysql::Error)

взято с http://stackoverflow.com/questions/1109993/construct-a-valid-mysql-query-usin...

Что я делаю не так?

эскэйп ('\\«'), dbh.quote не помогают

★★★★★

Последнее исправление: ZuBB (всего исправлений: 1)

row_s = row.map{|x| x && x.class == 'String' ? ('«' + x + '»') : x }

row_s = row.map{|x| x && ( x.class == 'String' ? ('«' + x + '»') : x ) }

так пробовали?

gunja
()

и вот это точно нормально:

sql_query << "(#{values.join(",\n")})"

может просто

sql_query << "(#{values.join(«\n»)})"

чтобы получилось:

«bla-bla, bla-bla2, bla-bla3 »

gunja
()
Ответ на: комментарий от gunja

уже да. не помогает.

а, и разницы я между моим вариантом и вашым не вижу..

ZuBB ★★★★★
() автор топика
Ответ на: комментарий от gunja

в итоге должно получится примерно следующее

insert into blah
(v1, v2, v3)
values (
('str', 10, nil), << --- ","
('char', 20, 30)
)


нельзя убирать ее 
ZuBB ★★★★★
() автор топика
Ответ на: комментарий от zz

да пофиг какие. у меня проблемма что они не появлялются. почемуто.

а нужны для стринга. см пример выше

ZuBB ★★★★★
() автор топика
Ответ на: комментарий от anonymous
escape_string(str)
quote(str)
quote strings for insert/update. same as C API mysql_real_escape_string().

эскэйп ('\\«'), dbh.quote не помогают

ZuBB ★★★★★
() автор топика
Ответ на: комментарий от anonymous

свежая голова + толковый совет = все ОК

ZuBB ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.