954,549 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

python mysql doesnt work?plz help

this is a program that i have, i dont know why it doesnt work. Could some one help me? thank you very much

#!c:\Python24\python.exe
# Fig. 35.22: fig35_22.py
# A program to illustrate Python's database connectivity.
import MySQLdb
 
print "Content-type: text/html"
print
print """
<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang="en"
   lang="en">
   <head><title>Select Author</title></head>
   <body style =
   font-family: Arial, sans-serif; font-size: 11pt">"""
 
try:
   connection = MySQLdb.connect(host = "localhost", user = "student", passwd = "student", db = "books")
except OperationalError:
 
   print "Unable to connect to database: %s" % message
else:
   cursor = connection.cursor()
   cursor.execute( "SELECT * from Authors" )
   authorList = cursor.fetchall()
 
   cursor.close()                  # close cursor
   connection.close()              # close connection
 
   print """
   <form method = "post" action = "/cgi-bin/fig35_23.py">
      <select name = "authorID">"""
 
   for author in authorList:
      print """<option value = %d>%s, %s</option>"""  \
            % ( author[ 0 ], author[ 2 ], author[ 1 ] )
 
   print """
      </select>
      <input type = "submit" value = "Execute Query" />
   </ form>"""
 
print """</body></html>"""


i get an error at OperationalError. It says OperationalError is undefined. now if i take out OperationalError it wont work because of the line......%s" % message inside that try and catch function. Now if i take those two codes then i will get it to have the drop down list but there is nothing in that drop down list. This is the code i have

#!c:\Python24\python.exe
# Fig. 35.22: fig35_22.py
# A program to illustrate Python's database connectivity.
import MySQLdb
print "Content-type: text/html"
print
print """
<html xmlns = " <a href="http://www.w3.org/1999/xhtml">http://www.w3.org/1999/xhtml</a> " xml:lang="en"
   lang="en">
   <head><title>Select Author</title></head>
   <body style =
   font-family: Arial, sans-serif; font-size: 11pt">"""
 
try:
   connection = MySQLdb.connect(host = "localhost", user = "root", passwd = "student", db = "books")
except:
   print "Unable to connect to database: "
else:
   cursor = connection.cursor()
   cursor.execute( "SELECT * from Authors" )
   authorList = cursor.fetchall()
   cursor.close()                  # close cursor
   connection.close()              # close connection
 
   print """
   <form method = "post" action = "/cgi-bin/fig35_23.py">
      <select name = "authorID">"""
   for author in authorList:
      print """<option value = %d>%s, %s</option>"""  \
            % ( author[ 0 ], author[ 2 ], author[ 1 ] )
   print """
      </select>
      <input type = "submit" value = "Execute Query" />
   </ form>"""
print """</body></html>"""


I'm using pythong to connect to mysql. here is my table structure for books database

create table authors(
authorID char(3),
firstName varchar(20),
lastName varchar(20)

insert into authors values('1','Harvey','Deitel');
insert into authors values('2','Paul','Deitel');
insert into authors values('3','Temn','Nieto');
insert into authors values('4','Kate','Steinbuhler');
insert into authors values('5','Sean','Santry');
insert into authors values('6','Ted','Linn');
insert into authors values('7','Praveen','Sadhu');
insert into authors values('8','David','McPhie');
insert into authors values('9','Cheryl','Yaeger');
insert into authors values('10','Marina','Zlatkina');
insert into authors values('11','Ben','Wiedernann');
insert into authors values('12','Jonathan','Liperi');

pleaze help me. thank you very much.
);

then in the end it should have a drop down list that contains
id, fname, lname like this
1, Harvey, Deitel
2,.....................

plz help me the error i got now from error log in apache is
" File "C:/Programfiles/Apache2.2/cgi-bin/fig35_22.py", line 41\r
[Thu Oct 19 22:24:18 2006] [error] [client 111.1.1.0] print """

dummies2
Newbie Poster
2 posts since Oct 2006
Reputation Points: 10
Solved Threads: 0
 

I keep reading that MySQL is hard to program with, no matter what computer language you use. Hope you find someone familiar with MySQL.

bumsfeld
Nearly a Posting Virtuoso
1,445 posts since Jul 2005
Reputation Points: 404
Solved Threads: 184
 

> what is wrong with the code.

Several things, actually. What is the stray quote doing in:
font-family: Arial, sans-serif; font-size: 11pt"> ?

But I suspect the real problem is here: print """<option value = %d>%s, %s</option>""" \
% ( author[ 0 ], author[ 2 ], author[ 1 ] )

You are treatingauthor[ 0 ] like an integer (with the %d format) but your table definition lists it as a char(3), and you are (correctly) inserting string values. Ergo, a quick switch from %d to %s should solve the problem. I was able to get the form generated properly, including the "Execute Query" button.

I have had only good experiences combining Python (2.4+) and MySQL (5.0+). SQL can be a pain sometimes but the MySQL.com newbie forum has always been helpful to me, for well-phrased questions.

BearofNH
Posting Whiz
323 posts since May 2007
Reputation Points: 94
Solved Threads: 48
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You