title: How to insert data from Python program to MySQL database at intervals
body: <p>I have created a temperature sensor (using DS18B20 temperature sensor) and wrote the python program to read and display the temperature every 10 seconds. It worked fine. Later, I modified the code to save the recordings of each 10 sec to a MySQL database. Now, the problem is that it records AND uploads the data to the databse for the first time it reads. Then, I get an error message. So basically, the program reads and uploads to the database for once and then quits after the error.
  Please tell me how to fix this! 
  Thanks a lot!</p>
  
  <p>Here is the code:</p>
  
  <pre><code>import os
  import time
  import MySQLdb
  import datetime
  
  i = datetime.datetime.now()
  
  db = MySQLdb.connect(host = "localhost", user = "root", passwd = "bb9125ap", db = "PY1")
  cur = db.cursor()
  
  os.system('modprobe w1-gpio')
  os.system('modprobe w1-therm')
  
  temp_sensor = '/sys/bus/w1/devices/28-00042d6745ff/w1_slave'
  
  def temp_raw():
      f = open(temp_sensor,'r')
      lines = f.readlines()
      f.close
      return lines
  
  def read_temp():
      lines = temp_raw()
      while lines[0].strip()[-3:] != 'YES':
            time.sleep(0.2)
            lines = temp_raw()
      temp_output = lines[1].find('t=')
      if temp_output != -1:
            temp_string = lines[1].strip()[temp_output+2:]
            temp_c = float(temp_string) / 1000.0
            return temp_c
  
      while True:
            print "recording data into database(period = 5s.)....press ctrl+Z to stop!"
  
            valT = str(read_temp())
  
            year = str(i.year)
            month = str(i.month)
            day = str(i.day)
            date = day + "-" + month + "-" + year
  
            hour = str(i.hour)
            minute = str(i.minute)
            second = str(i.second)
            time = hour + ":" + minute + ":" + second
  
            try:
               cur.execute("""INSERT INTO PY1.DUMP1(temp_c,rec_time,rec_date) VALUES(%s,%s,%s)""",(valT,time,date))
               db.commit()
            except:
               db.rollback()
  
            time.sleep(10)
  
       cur.close()
       db.close()
  </code></pre>
  
  <p><strong>Program name is temp1.py and line 54 according to my editor is db.rollback()</strong>
  <strong>Here is the error message I get</strong></p>
  
  <blockquote>
    <p>Traceback (most recent call last):
          File "temp1.py" , line 54 , in  time.sleep(10)
      Attribute:'str' object has no attribute 'sleep'</p>
  </blockquote>