PDO does not trow Exceptions for queries

PDO does not trow Exceptions for queries

am 03.08.2009 20:37:35 von webEater

$C->DB is my connection, but no exceptions will be thrown for the last
queries - althogh there is an error (whoch the command line would show).
Is there another option to activate throwing of exceptions?


$C->DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$C->DB->query('DROP TABLE key');

$C->DB->query('CREATE TABLE key ( id SERIAL NOT NULL PRIMARY KEY, k TEXT
NOT NULL UNIQUE )');

$S = $C->DB->prepare('INSERT INTO key (k)
SELECT lower(k) FROM current_node_tags LIMIT 100');


What my phpinfo() says:

PHP Version 5.2.6-1+lenny3

This server is protected with the Suhosin Patch 0.9.6.2

PDO
PDO support enabled
PDO drivers pgsql

pdo_pgsql
PDO Driver for PostgreSQL enabled
PostgreSQL(libpq) Version 8.3.7
Module version 1.0.2
Revision $Id: pdo_pgsql.c,v 1.7.2.11 2006/03/14 10:49:18 edink Exp $

pgsql
PostgreSQL Support enabled
PostgreSQL(libpq) Version 8.3.7
Multibyte character support enabled
SSL support enabled
Active Persistent Links 0
Active Links 0
pgsql.allow_persistent On On
pgsql.auto_reset_persistent Off Off
pgsql.ignore_notice Off Off
pgsql.log_notice Off Off
pgsql.max_links Unlimited Unlimited
pgsql.max_persistent Unlimited Unlimited

--
Sent via pgsql-php mailing list (pgsql-php@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-php

Re: PDO does not trow Exceptions for queries

am 04.08.2009 00:50:17 von dmagick

Andreas Kalsch wrote:
> $C->DB is my connection, but no exceptions will be thrown for the last
> queries - althogh there is an error (whoch the command line would show).
> Is there another option to activate throwing of exceptions?
>
>
> $C->DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
>
> $C->DB->query('DROP TABLE key');
>
> $C->DB->query('CREATE TABLE key ( id SERIAL NOT NULL PRIMARY KEY, k TEXT
> NOT NULL UNIQUE )');
>
> $S = $C->DB->prepare('INSERT INTO key (k)
> SELECT lower(k) FROM current_node_tags LIMIT 100');

prepare returns a 'pdostatement' which you then have to execute:

$S->execute();

This should generate an exception.

--
Postgresql & php tutorials
http://www.designmagick.com/


--
Sent via pgsql-php mailing list (pgsql-php@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-php

Re: PDO does not trow Exceptions for queries

am 04.08.2009 01:04:45 von webEater

In this case it was my false - I forgot to enable error reporting on the
PHP side.
Now everything works like I would expect it.


Chris schrieb:
> Andreas Kalsch wrote:
>> $C->DB is my connection, but no exceptions will be thrown for the
>> last queries - althogh there is an error (whoch the command line
>> would show).
>> Is there another option to activate throwing of exceptions?
>>
>>
>> $C->DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
>>
>> $C->DB->query('DROP TABLE key');
>>
>> $C->DB->query('CREATE TABLE key ( id SERIAL NOT NULL PRIMARY KEY, k
>> TEXT NOT NULL UNIQUE )');
>>
>> $S = $C->DB->prepare('INSERT INTO key (k)
>> SELECT lower(k) FROM current_node_tags LIMIT 100');
>
> prepare returns a 'pdostatement' which you then have to execute:
>
> $S->execute();
>
> This should generate an exception.
>


--
Sent via pgsql-php mailing list (pgsql-php@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-php