diff --git a/project_server.py b/project_server.py
index e82e33e8ba2eeff3fabb2b41bcae982fb22101ae..cf33dbd9506369ebde226b064d99971357b1df12 100644
--- a/project_server.py
+++ b/project_server.py
@@ -7,7 +7,19 @@ DATABASE = "project_db.db"
 
 ALLOWED_EXTENSIONS = set(['txt', 'pdf', 'png', 'jpg', 'jpeg', 'gif'])
 
-
+#Error handling for common database connection.
+#Parameter optional. Defaults to DATABASE.
+def connect_db(db_file=DATABASE):
+    conn = None
+    try:
+        conn = sqlite3.connect(db_file)
+    except:
+        print("Error connecting to database.")
+    return conn
+
+<<<<<<< HEAD
+@app.route('/SearchRecord', methods=['POST'])
+=======
 @app.route("/", methods=['GET'])
 def returnIndex():
     return render_template("test.html")
@@ -17,102 +29,122 @@ def returnManageCoworkingSpaces():
     return render_template("Manage_Coworking_Spaces.html")
 
 @app.route("/SearchRecord", methods=['POST'])
+>>>>>>> 447d1e30bd664c46c1ad4a89ed35119391ab95a6
 def searchRecord():
 
-    if request.method =='POST':
+    if (request.method =='POST'):
+        recordName = request.form.get('recordName', default="Error")
+        print(f"Searching for '{recordName}' in the database.")
+
         try:
-            recordName = request.form.get('recordName', default="Error")
-            conn = sqlite3.connect(DATABASE)
+            conn = connect_db()
             cur = conn.cursor()
             cur.execute("SELECT * FROM coworking_spaces WHERE Name=?;", [recordName])
             recordData = cur.fetchall()
+
         except:
-            print(f"Error: {recordData}")
-            conn.close()
+            print(f"Encountered an error whilst searching for record.")
+
         finally:
             conn.close()
-            print(f"{str(recordData)} Record found.")
-            return str(recordData)
 
-# Adds a record to the CSV file.
-@app.route("/AddRecord", methods=['POST'])
-def addRecord():
+            if not recordData: #If recordData is an empty list...
+                print(f"'{recordName}' not found.")
+                return (f"'{recordName}' not found.")
 
-    print('Processing record.')
-    infoMessage = ('Add record failed.')
+            else:
+                print(f"Found: {recordData}")
+                return (recordData)
+
+@app.route('/AddRecord', methods=['POST'])
+def addRecord():
 
     if (request.method == 'POST'):
-        recordName = request.form['recordName']
-        recordAddress = request.form['recordAddress']
-        recordMainPhotos = request.form['recordMainPhotos']
-        recordAdditionalPhotos = request.form['recordAdditionalPhotos']
-        recordDescription = request.form['recordDescription']
-        recordWebsite = request.form['recordWebsite']
-        recordEmail = request.form['recordEmail']
-        recordPhoneNumber = request.form['recordPhoneNumber']
-        recordOpeningHours = request.form['recordOpeningHours']
-        recordCheckinInstructions = request.form['recordCheckinInstructions']
+        recordName = request.form.get('recordName', default="Error")
+        recordAddress = request.form.get('recordAddress', default="Error")
+        recordMainPhotos = request.form.get('recordMainPhotos', default="Error")
+        recordAdditionalPhotos = request.form.get('recordAdditionalPhotos', default="Error")
+        recordDescription = request.form.get('recordDescription', default="Error")
+        recordWebsite = request.form.get('recordWebsite', default="Error")
+        recordEmail = request.form.get('recordEmail', default="Error")
+        recordPhoneNumber = request.form.get('recordPhoneNumber', default="Error")
+        recordOpeningHours = request.form.get('recordOpeningHours', default="Error")
+        recordCheckinInstructions = request.form.get('recordCheckinInstructions', default="Error")
         recordData = [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions]
+        print(f"Adding '{recordName}' to the database.")
 
-        conn = sqlite3.connect(DATABASE)
-        cur = conn.cursor()
-        cur.execute("INSERT INTO coworking_spaces ('Name', 'Address', 'Main_Photo', 'Additional_Photos', 'Description', 'Website', 'Email', 'Phone_Number', 'Opening_Hours', 'Checkin_Instructions')\
-                    VALUES (?,?,?,?,?,?,?,?,?,?)", (recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions))
-        conn.commit()
-        conn.close()
+        try:
+            conn = connect_db()
+            cur = conn.cursor()
+            cur.execute("INSERT INTO coworking_spaces ('Name', 'Address', 'Main_Photo', 'Additional_Photos', 'Description', 'Website', 'Email', 'Phone_Number', 'Opening_Hours', 'Checkin_Instructions')\
+                        VALUES (?,?,?,?,?,?,?,?,?,?)", (recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions))
+            conn.commit()
+            infoMessage = (f"Added: {recordData}")
 
-        infoMessage = (f'{recordData} Record added.')
+        except:
+            conn.rollback()
+            infoMessage = (f"Error adding record.")
 
-    print(infoMessage)
-    return (infoMessage)
+        finally:
+            conn.close()
+            print(infoMessage)
+            return (infoMessage)
 
-@app.route("/DeleteRecord", methods=['POST'])
+@app.route('/DeleteRecord', methods=['POST'])
 def deleteRecord():
 
-    if request.method =='POST':
+    if (request.method =='POST'):
+        recordName = request.form.get('recordName', default="Error")
+        print(f"Deleting '{recordName}' from the database.")
+
         try:
-            recordName = request.form.get('recordName', default="Error")
             conn = sqlite3.connect(DATABASE)
             cur = conn.cursor()
             cur.execute("DELETE FROM coworking_spaces WHERE Name=?;", [recordName])
             conn.commit()
+            infoMessage = (f"Deleted: '{recordName}'.")
+
         except:
-            print(f"Error: {recordData}")
-            conn.close()
+            conn.rollback()
+            infoMessage = (f"Error deleting record.")
+
         finally:
             conn.close()
-            print("Record deleted.")
-            return ("Record deleted.")
-
-@app.route("/EditRecord", methods=['POST'])
-def editRecord():
+            print(infoMessage)
+            return (infoMessage)
 
-    print('Processing record.')
-    infoMessage = ('Add record failed.')
+@app.route('/UpdateRecord', methods=['POST'])
+def updateRecord():
 
     if (request.method == 'POST'):
-        recordName = request.form['recordName']
-        recordAddress = request.form['recordAddress']
-        recordMainPhotos = request.form['recordMainPhotos']
-        recordAdditionalPhotos = request.form['recordAdditionalPhotos']
-        recordDescription = request.form['recordDescription']
-        recordWebsite = request.form['recordWebsite']
-        recordEmail = request.form['recordEmail']
-        recordPhoneNumber = request.form['recordPhoneNumber']
-        recordOpeningHours = request.form['recordOpeningHours']
-        recordCheckinInstructions = request.form['recordCheckinInstructions']
+        recordName = request.form.get('recordName', default="Error")
+        recordAddress = request.form.get('recordAddress', default="Error")
+        recordMainPhotos = request.form.get('recordMainPhotos', default="Error")
+        recordAdditionalPhotos = request.form.get('recordAdditionalPhotos', default="Error")
+        recordDescription = request.form.get('recordDescription', default="Error")
+        recordWebsite = request.form.get('recordWebsite', default="Error")
+        recordEmail = request.form.get('recordEmail', default="Error")
+        recordPhoneNumber = request.form.get('recordPhoneNumber', default="Error")
+        recordOpeningHours = request.form.get('recordOpeningHours', default="Error")
+        recordCheckinInstructions = request.form.get('recordCheckinInstructions', default="Error")
         recordData = [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions]
+        print(f"Updating '{recordName}' in the database.")
 
-        conn = sqlite3.connect(DATABASE)
-        cur = conn.cursor()
-        cur.execute("UPDATE coworking_spaces SET 'Name' = ?, 'Address' = ?, 'Main_Photo' = ?, 'Additional_Photos' = ?, 'Description' = ?, 'Website' = ?, 'Email' = ?, 'Phone_Number' = ?, 'Opening_Hours' = ?, 'Checkin_Instructions' = ? WHERE Name=?;", [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions, recordName])
-        conn.commit()
-        conn.close()
+        try:
+            conn = sqlite3.connect(DATABASE)
+            cur = conn.cursor()
+            cur.execute("UPDATE coworking_spaces SET 'Name' = ?, 'Address' = ?, 'Main_Photo' = ?, 'Additional_Photos' = ?, 'Description' = ?, 'Website' = ?, 'Email' = ?, 'Phone_Number' = ?, 'Opening_Hours' = ?, 'Checkin_Instructions' = ? WHERE Name=?;", [recordName, recordAddress, recordMainPhotos, recordAdditionalPhotos, recordDescription, recordWebsite, recordEmail, recordPhoneNumber, recordOpeningHours, recordCheckinInstructions, recordName])
+            conn.commit()
+            infoMessage = (f"Updated: '{recordName}'.")
 
-        infoMessage = (f'{recordData} Record amended.')
+        except:
+            conn.rollback()
+            infoMessage = (f"Error updating record.")
 
-    print(infoMessage)
-    return (infoMessage)
+        finally:
+            conn.close()
+            print(infoMessage)
+            return (infoMessage)
 
 if __name__ == "__main__":
     app.run(debug=True)