just some code I did some time ago:

/* */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/fcntl.h>

#include <mysql/mysql.h>

MYSQL dbcon;

int main(int argc, char *argv[])
{
  int i;
  char *tmpQ=malloc(2*1024*1024);
  char *end;
  int file;
  int size;
  char *mem;
  char tmpstr[1024];

  mysql_init(&dbcon);

  mysql_real_connect(&dbcon, NULL, "username", "password",
"dbname",0,"/tmp/mysql.sock",0);

  for(i=1;i<argc;i++) {
    file = open(argv[i], O_RDONLY);
    lseek(file, 0, SEEK_SET);
    size = lseek(file, 0, SEEK_END);
    lseek(file, 0, SEEK_SET);

    mem = malloc(size);
    read(file,mem,size);

    printf("inserting: %s\n",argv[i]);

    end = (char *) strmov(tmpQ,"INSERT INTO image values(");
    *end++ = '\'';
    sprintf(tmpstr,"%i",i);
    end = strmov(end, tmpstr);
    *end++ = '\'';
    *end++ = ',';
    *end++ = '\'';
    sprintf(tmpstr,"%i",i);
    end = strmov(end, tmpstr);
    *end++ = '\'';
    *end++ = ',';
    *end++ = '\'';
    end += mysql_escape_string(end, mem, size);
    *end++ = '\'';
    *end++ = ')';

    mysql_real_query(&dbcon, tmpQ, (unsigned int) (end - tmpQ));
    free(mem);
    close(file);
  }
  mysql_close(&dbcon);
  exit(0);
  return 0;
}

Kenneth Hylton wrote:

> Howdy -
>
> I looked in the doc @ mysql.com and the New Riders and O'Reilly MySQL books.
>
> Plus, I consulted the archives as best I could and did not see an answer for
> this:
>
> How do you insert binary data using the C API?
>
> I know you need to use mysql_real_query method and pass length, but how do
> you delimit the blob field?
>
> INSERT INTO some_table (key_field,blob_field) VALUES ( 'A', '<binary
> data>');
> INSERT INTO some_table SET key_field = 'A', blob_field = '<binary data>';
>
> Both have the issue of having the single quote appear in the data.
>
> These fields I'm storing are between 10 and 2000 bytes long and there are
> millions of them so I can't store them as separate files and then use the
> file name like I would for a graphic or downloadable file on a web page.
>
> TIA!
>
>         > "Have A Great Scouting Day"
>         > Ken Hylton
>         > 7826 Falcon Ridge Drive
>         > San Antonio, Texas 78239-4032
>         > 210-646-9508 (home)
>         > 210-949-7261 (work)
>         > 210-949-7254 (fax)
>         > 210-287-6756 (cell)
>         > [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
>         > [EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>
>
> ---------------------------------------------------------------------
> Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
> To request this thread, e-mail <[EMAIL PROTECTED]>
> To unsubscribe, e-mail <[EMAIL PROTECTED]>
> Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to