Skip to content
This repository was archived by the owner on Sep 28, 2022. It is now read-only.

Wrong/empty error codes for incorrect SQL-queries #57

Open
maxvoronov opened this issue Jun 15, 2021 · 0 comments
Open

Wrong/empty error codes for incorrect SQL-queries #57

maxvoronov opened this issue Jun 15, 2021 · 0 comments

Comments

@maxvoronov
Copy link

Hi Team,

I faced with strange behaviour when I send incorrect queries. Here are my cases:

// Direct SQL query:
> INSERT INTO fake_table (id) VALUES (1)
[42P01] ERROR: relation "fake_table" does not exist

// Query via extension:
$db = new Swoole\Coroutine\PostgreSQL();
$db->connect($dsn);    
$db->prepare('teststmt', 'INSERT INTO fake_table (id) VALUES ($1)');
echo 'Error code: ' . $db->errCode . PHP_EOL;    // Expect non-zero code
echo 'Error message: ' . $db->error . PHP_EOL;
> Error code: 0
> Error message: ERROR:  relation "fake_table" does not exist
> LINE 1: INSERT INTO fake_table (id) VALUES ($1)

// Direct SQL query:
> INSERT INTO parts (id, fake_field) VALUES (1, 'Some Data');
[42703] ERROR: column "fake_field" of relation "parts" does not exist

// Query via extension:
$db->prepare('teststmt2', 'INSERT INTO parts (id, fake_field) VALUES ($1, $2)');
> Error code: 0
> ERROR:  column "fake_field" of relation "pim_part" does not exist
> LINE 1: INSERT INTO pim_part (id, fake_field) VALUES ($1, $2)

Initially I was expecting an error code like in the PostgreSQL spec. But later I saw that type of errCode variable is integer. And I don't know how extension can pass error codes with letters (for example 42P01). Are there any mapping table or something like that? I'm not sure that this feature works correctly.

# for free to subscribe to this conversation on GitHub. Already have an account? #.
Projects
None yet
Development

No branches or pull requests

2 participants