Log in

View Full Version : Need help pulling data from DB (Perl DBI)


ChaosSlayerZ
10-19-2020, 11:32 PM
I am pretty sure DBI is connecting but not pulling anything from DB could anyone take a look at this?



sub EVENT_SAY

{

if ($text =~/read/i)
{

### Read from DB
#if(!$connect){ $connect = plugin::LoadMysql(); }

$connect = plugin::LoadMysql();
$query = "SELECT
data_buckets.key
data_buckets.value
FROM
peq.data_buckets";
$query_handle = $connect->prepare($query);
$query_handle->execute();

my $key_name;
my $key_value;

while(($key_name,$key_value) = $query_handle->fetchrow())
{
quest::say(" babling $key_name,$key_value");
}


}
}



thank you!

NatedogEZ
10-21-2020, 03:31 PM
Try this

sub EVENT_SAY {
if ($text =~/read/i) {
$connect = plugin::LoadMysql();
$query = "SELECT key, value FROM data_buckets";
$query_handle = $connect->prepare($query);
$query_handle->execute();

while(@row = $query_handle->fetchrow_array()) {
quest::say(" babling $row[0],$row[1]");
}
}
}

ChaosSlayerZ
10-21-2020, 06:28 PM
Thanks, I actually got it working yesterday thanks to TurmoilToad - he spotted missing ( ; ) in the query line it needs to be:

$query = "SELECT key, value FROM data_buckets;";


But I will utilize this part from you =)

while(@row = $query_handle->fetchrow_array()) {
quest::say(" babling $row[0],$row[1]");

NatedogEZ
10-21-2020, 08:43 PM
Well the original post is also missing a "," between data_buckets.key data_buckets.value

Also you don't need to put ";" at the end in DBI :P