Instead of COUNT(*) what do you see when you do a SELECT * ?

On Thu, Jan 26, 2023, 6:07 PM Perrin Harkins <phark...@gmail.com> wrote:

> Maybe you haven't committed some manual change on the server, so it isn't
> visible to other connections.
>
> On Thu, Jan 26, 2023 at 8:56 PM Steven Haigh via modperl <
> modperl@perl.apache.org> wrote:
>
>>
>>
>> On Fri, Jan 27 2023 at 09:50:42 +0800, demerphq <demer...@gmail.com>
>> wrote:
>>
>> On Fri, 27 Jan 2023, 09:43 Steven Haigh via modperl, <
>> modperl@perl.apache.org> wrote:
>>
>>> Hi all,
>>>
>>> I'm a little confused about my little mod_perl web site at the moment.
>>>
>>> I'm doing an SQL query, then punting the results into a dataset to
>>> display via the web page.
>>>
>>> When I do the query directly on the SQL server, I see:
>>>
>>> SELECT COUNT(*) FROM printers;
>>> 30
>>>
>>> When I do the same in code via the web page, I get:
>>>         $sth = $dbh->prepare("SELECT COUNT(*) FROM printers");
>>>         $vars->{"count"} = $dbh->selectcol_arrayref($sth, undef);
>>>
>>> 'count' => [ 29 ]
>>>
>>> Even trying a slightly different approach:
>>>         $sth = $dbh->prepare("SELECT COUNT(*) FROM printers");
>>>         $sth->execute();
>>>         $vars->{"count"} = $sth->fetchrow_hashref();
>>>
>>> count' => { 'COUNT(*)' => 29 }
>>>
>>> This table is only ever updated manually - so there is no possible way
>>> that the contents are being updated during these runs - however I also note
>>> that the data returned in something like `SELECT * FROM printers` is
>>> different than what I get by running the query directly.
>>>
>>
>> What do you mean by different?
>>
>>>
>>> Annoyingly, even after restarting apache, restarting mariadb, and even
>>> restarting the entire machine, I still see this issue.
>>>
>>> That leaves me completely stuck - how can old data be returned - even
>>> after a full machine reboot?
>>>
>>> Am I missing something kinda obvious?
>>>
>>> The system is Fedora 37 with the following versions:
>>> mariadb-10.9.4-1
>>> mod_perl-2.0.12-5
>>> httpd-2.4.54-5
>>> perl-DBD-MariaDB-1.22-3
>>> perl-DBD-MySQL-4.050-15
>>>
>>> I've tried both the dbi:mysql and dbi:MariaDB - and the same occurs.
>>>
>>
>> Are you sure you are connecting to the same dB?
>>
>> I'd debug this with a simple perl script and no mod_perl, and then work
>> forward from there.
>>
>>
>> I stripped this back to:
>>
>> #!/usr/bin/perl
>> use strict;
>> use warnings;
>> use POSIX qw(strftime);
>> use Data::Dumper;
>> use DBI;
>>
>> ## Connect to the database...
>> my $sqldb = "dbname";
>> my $sqlusername = "dbusername";
>> my $sqlpassword = "dbpassword";
>> my $sqlhost = "localhost";
>> my $dbh = DBI->connect("dbi:MariaDB:$sqldb:$sqlhost", $sqlusername,
>> $sqlpassword) || die "Unable to connect to database! $!";
>>
>> my $sth = $dbh->prepare("SELECT COUNT(*) FROM printers");
>> $sth->execute();
>>
>> print Dumper($sth->fetchrow_hashref());
>>
>> Yet that also returns 29.
>>
>> So now I'm *really* confused - but at least that rules out mod_perl.....
>>
>> Yves
>>
>>
>> --
>>> Steven Haigh 📧 net...@crc.id.au 💻 https://crc.id.au
>>> <https://www.crc.id.au/>
>>>
>>

Reply via email to