DBI.pm 850 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package KelpBench::DBI;
  2. use v5.36;
  3. use Kelp::Base 'Kelp';
  4. use DBI;
  5. attr dbh => sub {
  6. DBI->connect(
  7. "dbi:MariaDB:database=hello_world;host=tfb-database;port=3306",
  8. 'benchmarkdbuser',
  9. 'benchmarkdbpass',
  10. { RaiseError => 1, PrintError => 0 }
  11. );
  12. };
  13. attr _world => sub ($self) {
  14. $self->dbh->prepare("SELECT * FROM World WHERE id = ?");
  15. };
  16. attr _fortune => sub ($self) {
  17. $self->dbh->prepare("SELECT * FROM Fortune");
  18. };
  19. attr _update => sub ($self) {
  20. $self->dbh->prepare("UPDATE World SET randomNumber = ? WHERE id = ?");
  21. };
  22. sub random_number ($self, $id)
  23. {
  24. $self->_world->execute($id);
  25. return $self->_world->fetchrow_hashref;
  26. }
  27. sub fortune ($self)
  28. {
  29. $self->_fortune->execute();
  30. return $self->_fortune->fetchall_arrayref({});
  31. }
  32. sub update ($self, $id, $random_number)
  33. {
  34. $self->_update->execute($random_number, $id);
  35. return;
  36. }
  37. 1;