Advertisement
Guest User

Untitled

a guest
Apr 18th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.19 KB | None | 0 0
  1. //
  2. // CreateAccountViewController.swift
  3. // FashionCheck
  4. //
  5. // Created by Parker Mclain on 4/17/18.
  6. // Copyright © 2018 Parker Mclain. All rights reserved.
  7. //
  8.  
  9. import UIKit
  10. import SQLite3
  11.  
  12. class CreateAccountViewController: UIViewController {
  13.  
  14. var db: OpaquePointer?
  15.  
  16. @IBOutlet weak var emailTextfield: UITextField!
  17. @IBOutlet weak var passwordTextfield: UITextField!
  18. @IBOutlet weak var confirmPasswordTextfield: UITextField!
  19.  
  20. @IBOutlet weak var firstNameTextfield: UITextField!
  21. @IBOutlet weak var lastNameTextfield: UITextField!
  22. @IBOutlet weak var birthdayDatepicker: UIDatePicker!
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. override func viewDidLoad() {
  30. super.viewDidLoad()
  31.  
  32. let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
  33. .appendingPathComponent("Database.sqlite")
  34.  
  35.  
  36.  
  37. print(fileURL.absoluteString)
  38. // Do any additional setup after loading the view, typically from a nib.
  39.  
  40.  
  41.  
  42.  
  43. if sqlite3_open(fileURL.path, &db) != SQLITE_OK {
  44. print("error opening database")
  45. }
  46. /*
  47. if sqlite3_exec(db, "DROP TABLE Users", nil, nil, nil) != SQLITE_OK {
  48. let errmsg = String(cString: sqlite3_errmsg(db)!)
  49. print("error creating table: \(errmsg)")
  50. }
  51. */
  52.  
  53. if sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS Users (email TEXT, password TEXT, first_name TEXT, last_name TEXT)", nil, nil, nil) != SQLITE_OK {
  54. let errmsg = String(cString: sqlite3_errmsg(db)!)
  55. print("error creating table: \(errmsg)")
  56. }
  57.  
  58.  
  59.  
  60. // Do any additional setup after loading the view.
  61. }
  62.  
  63. override func didReceiveMemoryWarning() {
  64. super.didReceiveMemoryWarning()
  65. // Dispose of any resources that can be recreated.
  66. }
  67.  
  68.  
  69. /*
  70. // MARK: - Navigation
  71.  
  72. // In a storyboard-based application, you will often want to do a little preparation before navigation
  73. override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  74. // Get the new view controller using segue.destinationViewController.
  75. // Pass the selected object to the new view controller.
  76. }
  77. */
  78.  
  79. @IBAction func createAccountButton(_ sender: Any) {
  80.  
  81. let email: String = emailTextfield.text!
  82. let password: String = passwordTextfield.text!
  83. let confirmPassword: String = confirmPasswordTextfield.text!
  84. let firstName: String = firstNameTextfield.text!
  85. let lastName: String = lastNameTextfield.text!
  86. let dateOfBirth: Date = birthdayDatepicker.date
  87.  
  88.  
  89.  
  90.  
  91. print("Email: \(email)")
  92. print("Password: \(password)")
  93. print("Confirm Password: \(confirmPassword)")
  94. print("First Name: \(firstName)")
  95. print("Last Name: \(lastName)")
  96. print("Birthday: \(dateOfBirth)")
  97.  
  98. var stmt: OpaquePointer?
  99.  
  100. let queryString = "INSERT INTO Users (email, password, first_Name, last_Name) VALUES (email,password,firstName,lastName)"
  101.  
  102. if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
  103. let errmsg = String(cString: sqlite3_errmsg(db)!)
  104. print("error preparing insert: \(errmsg)")
  105. return
  106. }
  107.  
  108.  
  109.  
  110. if sqlite3_bind_text(stmt, 1, email, -1, nil) != SQLITE_OK{
  111. let errmsg = String(cString: sqlite3_errmsg(db)!)
  112. print("failure binding name: \(errmsg)")
  113. return
  114. }
  115.  
  116. if sqlite3_bind_text(stmt, 2, password, -1, nil) != SQLITE_OK{
  117. let errmsg = String(cString: sqlite3_errmsg(db)!)
  118. print("failure binding name: \(errmsg)")
  119. return
  120. }
  121.  
  122. if sqlite3_bind_text(stmt, 3, firstName, -1, nil) != SQLITE_OK{
  123. let errmsg = String(cString: sqlite3_errmsg(db)!)
  124. print("failure binding name: \(errmsg)")
  125. return
  126. }
  127.  
  128. if sqlite3_bind_text(stmt, 4, lastName, -1, nil) != SQLITE_OK{
  129. let errmsg = String(cString: sqlite3_errmsg(db)!)
  130. print("failure binding name: \(errmsg)")
  131. return
  132. }
  133.  
  134. /*
  135. if sqlite3_bind_text(stmt, 5, String(describing: dateOfBirth), -1, nil) != SQLITE_OK{
  136. let errmsg = String(cString: sqlite3_errmsg(db)!)
  137. print("failure binding name: \(errmsg)")
  138. return
  139. }*/
  140.  
  141.  
  142. if sqlite3_step(stmt) != SQLITE_DONE {
  143. let errmsg = String(cString: sqlite3_errmsg(db)!)
  144. print("failure inserting user: \(errmsg)")
  145. return
  146. }
  147.  
  148. //textFieldName.text=""
  149. //textFieldPowerRanking.text=""
  150.  
  151. //readValues()
  152.  
  153. print("Account Created!")
  154.  
  155. //readValues()
  156.  
  157. //sqlite3_close(db);
  158.  
  159.  
  160.  
  161. }
  162.  
  163. func readValues(){
  164.  
  165. let queryString = "SELECT * FROM Users"
  166.  
  167. var stmt:OpaquePointer?
  168.  
  169. if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
  170. let errmsg = String(cString: sqlite3_errmsg(db)!)
  171. print("error preparing insert: \(errmsg)")
  172. return
  173. }
  174.  
  175. while(sqlite3_step(stmt) == SQLITE_ROW){
  176. let email = String(cString: sqlite3_column_text(stmt, 0))
  177. let password = String(cString: sqlite3_column_text(stmt, 1))
  178. let firstName = String(cString: sqlite3_column_text(stmt, 2))
  179. let lastName = String(cString: sqlite3_column_text(stmt, 3))
  180.  
  181.  
  182. print("Email: \(String(email)), Password: \(String(password)), First Name: \(String(firstName)), Last Name: \(String(lastName))")
  183. //heroList.append(Hero(id: Int(id), name: String(describing: name), powerRanking: Int(powerrank)))
  184. }
  185.  
  186. //self.tableViewHeroes.reloadData()
  187. }
  188.  
  189.  
  190.  
  191.  
  192. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement