checking select query syntax and semantics via php without executing
Marco Dieckhoff <[email protected]> Mon, 05 Oct 2009 23:34:32 +0200
| Newsgroups | gmane.comp.db.postgresql.php |
|---|---|
| Message-ID | <[email protected]> |
Hi there! Is it possible in PHP to give a sql (select) query to Postgres via pg_* so that it is NOT executed but merely checked for syntax including correct, existing field and table names, and data types? I'm working on a system where users may assemble their own query in a construction kit, and want that to be checked, so that they don't e.g. compare UUID "<" datetime or something like this. If I try to execute the generated query, bad queries are instantly found by pg_query. But good ones are fully executed, which can take a long time depending on joins and aggregations. It seems that pg_prepare doesn't return errors on bad queries, pg_last_error() is empty. The asynchronous pg_send_query (and pg_cancel_query) seem not to return any errors, either. I tried with three queries: "SELECT * FROM tableok" "SELECT nonexistingfield FROM nonexistingtable" "SELECT complete bad / sql query FROM nonsense" Any ideas? -- Sent via pgsql-php mailing list ([email protected]) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-php