Re: PDO returns all data as strings?!

From: Date: Tue, 04 Apr 2023 20:32:12 +0000
Subject: Re: PDO returns all data as strings?!
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-328181@lists.php.net to get a copy of this message
One of the reasons why they are returned as string (and I think the main reason) is that PHP has a limit to ints/doubles that is far much lower than SQL. If they return int many people would have issues. I would recommend that you just create your own "passthrough" class that will set the type based on the schema (or list of columns you have in a config), this would be harder if those columns are dynamic though. On Tue, Apr 4, 2023 at 4:26 PM Yves Goergen <nospam.list@unclassified.de> wrote: > No, that doesn't change anything. > > Meanwhile I've tried out the SQLite3 classes and found that their API is > very similar. I had almost no work adapting my code. These classes work > fine and return the real data type, not a converted view of it. And it > even allows resolving the SQL statement including bound parameter values > which is helpful for debugging. I'll keep that. > > -Yves > > > -------- Ursprüngliche Nachricht -------- > Von: Aziz Saleh <azizsaleh@gmail.com> > Gesendet: Montag, 3. April 2023, 21:59 MESZ > Betreff: PDO returns all data as strings?! > > Try setting this option and see if it helps: > > PDO::ATTR_STRINGIFY_FETCHES => false > > On Mon, Apr 3, 2023 at 3:31 PM Yves Goergen via php-general > <php-general@lists.php.net > <mailto:php-general@lists.php.net>> wrote: > > Hello, > > I just noticed a weird behaviour of PDO for my SQLite database and > found > a hint online. Just wanted to check here. > > Is it correct that PDO will return all queried values from the fetch > method as string, no matter the actual data type? I couldn't find that > notice by glancing over the documentation. (Such an unexpected note > should be very well visible.) > > If that's the case, can it be fixed immediately (for PHP 7.4 and > later)? > Or what alternatives to PDO could I use for SQLite only? I need > prepared > statements and parameter binding. > > I know how SQLite handles data types, and it includes remembering the > type that was given to it. If PHP/PDO then destroys it, it's of very > limited use. > > My code looks like this: > > $ps = $this->connection->prepare('select * from table'); > $ps->execute(); > $record = $ps->fetch(PDO::FETCH_ASSOC); > > -Yves > > >

« previous php.general (#328181) next »