psycopg2 for insertion of binary data to PostgreSQL database

Peter Otten __peter__ at web.de
Sat Aug 21 23:58:50 CEST 2010


Julia Jacobson wrote:

> Hello everybody out there using python,
> 
> For the insertion of pictures into my PostgreSQL database [with table
> foo created by SQL command "CREATE TABLE foo (bmp BYTEA)], I've written
> the following script:
> 
> #!/usr/bin/python
> import psycopg2
> try:
>      conn = psycopg2.connect("dbname='postgres' user='postgres'
> host='localhost' password='data'");
> except:
>      print "I am unable to connect to the database"
> cur = conn.cursor()
> f = open("test.bmp", 'rb')
> myfile = f.read()
> try:
>      cur.execute("INSERT INTO foo VALUES (%s)",(buffer(myfile),))
> except:
>      print "Insert unsuccessful"
> 
> "python script.py" runs the script without any errors or messages.
> However, the SQL command "SELECT * FROM foo"  returns the output "foo (0
> rows)" with no entries in the table.
> I'm using Python 2.7 and PostgreSQL 8.3.
> Could anyone help me to find a way to pin down the problem?

Perhaps you need to conn.commit() your changes.



More information about the Python-list mailing list