Inserting binary data into a MySQL database fails
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=1029
Reported by Ian Delahorne, Roxen IS ian@roxen.com
Inserting binary data into a MySQL on Win2k/NT4 barfs. Backtrace from hilfe (same error in Roxen):
> object o = Sql.sql("mysql://localhost/test");
Result: object
> string s = Stdio.File("/web/test.jpg")->read();
> strlen(s);
Result: 163054
> o->quote(s);
> strlen(o->quote(s));
Result: 167663
> o->query("insert into bintest values(0, "+o->quote(s))+")");
Syntax error.
> o->query("insert into bintest values(0, "+o->quote(s)+")");
mysql->big_query(): Query failed (You have an error in your SQL syntax
near '▒Ex
if\0\0II*\\0\0\0 \0☼☺☻\0♣\0\0\0z\0\0\0►☺☻\0♀\0\0\0Ç\0\0\0↕☺♥\0☺\0\0
\0☺\0\
0\' at line 1)
C:/Program Files/Roxen Internet
Software/WebServer/server/pike/lib/pike/modules/
Sql.pmod/mysql.pike: big_query("insert into bintest values
(0, ╪ ß\32▒Exif\\0\\0
II*\\0\b\\0\\0\\0\t\\0\17\1\2\\0\5\\0\\0\\0z\\0\\0\\0\20\1\2\\0\14\\0\\0
\\0Ç\\0\
\0\\0\22\1\3\\0\1\\0\\0\\0\1\\0\\0\\0\32\1\5\\0\1\\0\\0\\0î\\0\\0\\0\33\1\5
\\0\1
\\0\\0\\0ö\\0\\0\\0(\1\3\\0\1\\0\\0\\0\2\\0\\0\\02\1\2\\0\24\\0\\0\\0£\\0
\\0\\0\
23\2\3\\"+[167499])
C:/Program Files/Roxen Internet
Software/WebServer/server/pike/lib/pike/modules/
Sql.pmod/sql.pike:352: query("insert into bintest values(0, ╪ ß\32▒Exif\\0
\\0II
*\\0\b\\0\\0\\0\t\\0\17\1\2\\0\5\\0\\0\\0z\\0\\0\\0\20\1\2\\0\14\\0\\0
\\0Ç\\0\\0
\\0\22\1\3\\0\1\\0\\0\\0\1\\0\\0\\0\32\1\5\\0\1\\0\\0\\0î\\0\\0\\0\33\1\5
\\0\1\\
0\\0\\0ö\\0\\0\\0(\1\3\\0\1\\0\\0\\0\2\\0\\0\\02\1\2\\0\24\\0\\0\\0£\\0\\0
\\0\23
\2\3"+[167500],0)
-:1: ___Foo4711()
>