Advertisement
Guest User

Untitled

a guest
Nov 12th, 2018
258
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.76 KB | None | 0 0
  1. #!/usr/bin/perl
  2. use strict;
  3.  
  4. #Database connection
  5. use DBI;
  6.  
  7. my $dsn = "DBI:mysql:fall2018:localhost";
  8. my $dbUsername = "root";
  9. my $dbPassword = "password";
  10.  
  11. #Connect or die
  12. my $dbh = DBI->connect($dsn, $dbUsername, $dbPassword) or die("Error connecting to the database.\n");
  13.  
  14.  
  15. #Firstly want to check if user is root or not.
  16. my $rootAccess = 0;
  17. print "Welcome, enter a username.\n";
  18. my $username = <STDIN>;
  19. chomp $username;
  20. print "Enter a password.\n";
  21. my $password = <STDIN>;
  22. chomp $password;
  23. if($username eq "root" && $password eq "password") {
  24. print "Successful root login. \n";
  25. $rootAccess = 1;
  26. } else {
  27. print "Login failed\n";
  28. exit(0);
  29. }
  30.  
  31. #If the user is identified as root
  32. if($rootAccess == 1) {
  33.  
  34. print "The actions you can preform are as follows: 1. Add an entry, 2. Update an entry, 3. Delete an entry, 4. Preform a search, -1. To exit.\n";
  35. my $rootInput = <STDIN>;
  36. chomp $rootInput;
  37.  
  38. #Root chose to add an entry
  39. if($rootInput == 1) {
  40. print "Enter the artist.\n";
  41. my $artist = <STDIN>;
  42. chomp $artist;
  43. print "Enter the title.\n";
  44. my $title = <STDIN>;
  45. chomp $title;
  46. print "Enter the album.\n";
  47. my $album = <STDIN>;
  48. chomp $album;
  49. print "Enter the time.\n";
  50. my $time = <STDIN>;
  51. chomp $time;
  52. #Catch bad input
  53. if($artist eq "" or $title eq "" or $album eq "" or $time eq "") {
  54. print "Must have entered a valid input."
  55.  
  56. }
  57.  
  58. #Insert data into the table
  59. my $query = "INSERT INTO songs (artist, title, album, time) VALUES (?, ?, ?, ?)";
  60. my $statement = $dbh->prepare($query);
  61. $statement->execute($artist, $title, $album, $time);
  62.  
  63. }
  64. #Root chose to update
  65. if($rootInput == 2) {
  66. print "List of all the entries are. \n";
  67. my $query = "SELECT * FROM songs";
  68. my $statement = $dbh->prepare($query);
  69. $statement->execute();
  70. while(my @data = $statement->fetchrow_array()) {
  71. my $exID = $data[0];
  72. my $exArtist = $data[1];
  73. my $exTitle = $data[2];
  74. my $exAlbum = $data[3];
  75. my $exTime = $data[4];
  76. print "Song ID: $exID, Artist: $exArtist Title: $exTitle, Album: $exAlbum, Time: $exTime \n";
  77.  
  78. }
  79.  
  80. #Prompt user to enter what info they want to change
  81. print "Enter the Song ID of the entry you would like to change\n";
  82. my $id = <STDIN>;
  83. chomp $id;
  84. print "Enter in blank for no change or enter in the change at the desired section.\n Artist: ";
  85. my $artist = <STDIN>;
  86. chomp $artist;
  87. print "Title: ";
  88. my $title = <STDIN>;
  89. chomp $title;
  90. print "Album: ";
  91. my $album = <STDIN>;
  92. chomp $album;
  93. print "Time: ";
  94. my $time = <STDIN>;
  95. chomp $time;
  96.  
  97. my $query = "SELECT songid, artist, title, album, time FROM songs WHERE songID=$id";
  98. my $statement = $dbh->prepare($query);
  99. $statement->execute();
  100. my @data = $statement->fetchrow_array();
  101.  
  102. if($artist eq "") {
  103. $artist = $data[1];
  104. }
  105. if($title eq "") {
  106. $title = $data[2];
  107. }
  108. if($album eq "") {
  109. $album = $data[3];
  110. }
  111. if($time eq "") {
  112. $time = $data[4];
  113. }
  114.  
  115. #Updating the table with new values
  116. my $updateQuery = "UPDATE songs SET artist = ?, title = ?, album = ?, time = ? WHERE songid=$id";
  117. my $updateStatement = $dbh->prepare($updateQuery);
  118. $updateStatement->execute($artist, $title, $album, $time);
  119.  
  120. #Reprint the table
  121. my $query = "SELECT * FROM songs";
  122. my $statement = $dbh->prepare($query);
  123. $statement->execute();
  124. while(my @data = $statement->fetchrow_array()) {
  125. my $exID = $data[0];
  126. my $exArtist = $data[1];
  127. my $exTitle = $data[2];
  128. my $exAlbum = $data[3];
  129. my $exTime = $data[4];
  130. print "Song ID: $exID, Artist: $exArtist Title: $exTitle, Album: $exAlbum, Time: $exTime \n";
  131.  
  132. }
  133. }
  134.  
  135. #Delete from the table
  136. if($rootInput == 3) {
  137. print "Enter the Song id of what you would like to delete. Enter a empty string to do nothing\n";
  138. my $query = "SELECT * FROM songs";
  139. my $statement = $dbh->prepare($query);
  140. $statement->execute();
  141. while(my @data = $statement->fetchrow_array()) {
  142. my $exID = $data[0];
  143. my $exArtist = $data[1];
  144. my $exTitle = $data[2];
  145. my $exAlbum = $data[3];
  146. my $exTime = $data[4];
  147. print "Song ID: $exID, Artist: $exArtist Title: $exTitle, Album: $exAlbum, Time: $exTime \n";
  148.  
  149. }
  150. print "Enter the Song ID you would like to delete.\n";
  151. my $delSong = <STDIN>;
  152. chomp $delSong;
  153.  
  154. #Check to see if string is empty
  155. if($delSong eq "") {
  156.  
  157. } else {
  158. my $query = "DELETE FROM songs WHERE songid=$delSong";
  159. my $statement = $dbh->prepare($query);
  160. $statement->execute();
  161. print "DELETED.\n";
  162. }
  163.  
  164. my $query = "SELECT * FROM songs";
  165. my $statement = $dbh->prepare($query);
  166. $statement->execute();
  167. while(my @data = $statement->fetchrow_array()) {
  168. my $exID = $data[0];
  169. my $exArtist = $data[1];
  170. my $exTitle = $data[2];
  171. my $exAlbum = $data[3];
  172. my $exTime = $data[4];
  173. print "Song ID: $exID, Artist: $exArtist Title: $exTitle, Album: $exAlbum, Time: $exTime \n";
  174.  
  175. }
  176.  
  177.  
  178. }
  179. #Searching algorithm
  180. if($rootInput == 4) {
  181. print "Press 1 to search by ARTIST or TITLE and 2 for ALBUM search";
  182. my $searchType = <STDIN>;
  183. chomp $searchType;
  184. if($searchType == 1) {
  185. print "Enter a search string.\n";
  186. my $search = <STDIN>;
  187. chomp $search;
  188. my $query = "SELECT * FROM songs WHERE artist RLIKE \'$search\'";
  189. my $statement = $dbh->prepare($query);
  190. $statement->execute();
  191. print "EXECUTING ARTIST SEARCH\n";
  192. while(my @data = $statement->fetchrow_array()) {
  193. my $exID = $data[0];
  194. my $exArtist = $data[1];
  195. my $exTitle = $data[2];
  196. my $exAlbum = $data[3];
  197. my $exTime = $data[4];
  198. print "Song ID: $exID, Artist: $exArtist Title: $exTitle, Album: $exAlbum, Time: $exTime \n";
  199.  
  200. }
  201.  
  202. print "\n\nEXECUTING TITLE SEARCH\n";
  203. my $query = "SELECT * FROM songs WHERE title RLIKE \'$search\'";
  204. my $statement = $dbh->prepare($query);
  205. $statement->execute();
  206. while(my @data = $statement->fetchrow_array()) {
  207. my $exID = $data[0];
  208. my $exArtist = $data[1];
  209. my $exTitle = $data[2];
  210. my $exAlbum = $data[3];
  211. my $exTime = $data[4];
  212. print "Song ID: $exID, Artist: $exArtist Title: $exTitle, Album: $exAlbum, Time: $exTime \n";
  213.  
  214. }
  215. }
  216. if($searchType == 2 ) {
  217. print "Enter a search string.\n";
  218. my $search = <STDIN>;
  219. chomp $search;
  220. my $query = "SELECT * FROM songs WHERE album RLIKE \'$search\'";
  221. my $statement = $dbh->prepare($query);
  222. $statement->execute();
  223. print "EXECUTING ALBUM SEARCH\n";
  224. while(my @data = $statement->fetchrow_array()) {
  225. my $exID = $data[0];
  226. my $exArtist = $data[1];
  227. my $exTitle = $data[2];
  228. my $exAlbum = $data[3];
  229. my $exTime = $data[4];
  230. print "Song ID: $exID, Artist: $exArtist Title: $exTitle, Album: $exAlbum, Time: $exTime \n";
  231.  
  232. }
  233.  
  234. }
  235.  
  236. }
  237. }
  238. #Discconnect from DB
  239. $dbh->disconnect();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement