Compare commits

...

1 Commits

Author SHA1 Message Date
Clemens Schwaighofer
b18bf937d3 DB\IO Missing dbWarning updates with call context
all in the __dbSetInsertId method
2023-10-16 16:10:47 +09:00

View File

@@ -1597,15 +1597,13 @@ class IO
* - if many this will also hold all non pk names too * - if many this will also hold all non pk names too
* then try to fill insert_id_arr, this is always multi level * then try to fill insert_id_arr, this is always multi level
* - fill key: value as single array or multi array * - fill key: value as single array or multi array
* insert_id_ext [DEPRECATED, all in insert_id_arr]
* - holds all returning as array * - holds all returning as array
* TODO: Only use insert_id_arr and use functions to get ok array or single
* *
* @param bool $returning_id * @param bool $returning_id False if no RETURNING, try to get different via insert id
* @param string $query * @param string $query Query with RETURNING
* @param string|null $pk_name * @param string|null $pk_name Primary key name
* @param \PgSql\Result|false $cursor (PgSql\Result) * @param \PgSql\Result|false $cursor (PgSql\Result)
* @param string|null $stm_name If not null, is dbExecutre run * @param string|null $stm_name [null] If not null, is dbExecute run and not a prepared call
* @return void * @return void
*/ */
private function __dbSetInsertId( private function __dbSetInsertId(
@@ -1627,9 +1625,16 @@ class IO
if ($cursor === false) { if ($cursor === false) {
// failed to get insert id // failed to get insert id
if ($stm_name === null) { if ($stm_name === null) {
$this->__dbWarning(34, $cursor, '[dbExec]'); $this->__dbWarning(34, $cursor, '[dbExec]', context: [
'query' => $query,
'pk_name' => $pk_name,
]);
} else { } else {
$this->__dbWarning(34, false, $stm_name . ': CURSOR is null'); $this->__dbWarning(34, false, 'CURSOR is null', [
'statement_name' => $stm_name,
'query' => $query,
'pk_name' => $pk_name,
]);
} }
return; return;
} }
@@ -1641,7 +1646,11 @@ class IO
$this->insert_id_arr[] = $insert_id; $this->insert_id_arr[] = $insert_id;
// throw warning that no pk was found // throw warning that no pk was found
if ($insert_id === false) { if ($insert_id === false) {
$this->__dbWarning(31, $cursor, '[dbExec]'); $this->__dbWarning(31, $cursor, '[dbExec]', context: [
'query' => $query,
'pk_name' => $pk_name,
'returning_id' => $returning_id,
]);
} }
} else { // was stm_name null or not null and cursor } else { // was stm_name null or not null and cursor
// we have returning, now we need to check if we get one or many returned // we have returning, now we need to check if we get one or many returned
@@ -1658,23 +1667,43 @@ class IO
if (count($this->insert_id_arr) == 0) { if (count($this->insert_id_arr) == 0) {
// failed to get insert id // failed to get insert id
if ($stm_name === null) { if ($stm_name === null) {
$this->__dbWarning(33, $cursor, '[dbExec]'); $this->__dbWarning(33, $cursor, '[dbExec]', context: [
'query' => $query,
'pk_name' => $pk_name,
'returning_id' => $returning_id,
]);
} else { } else {
$this->__dbWarning( $this->__dbWarning(
33, 33,
false, false,
$stm_name . ': RETURNING returned no data' 'RETURNING returned no data',
context: [
'statement_name' => $stm_name,
'query' => $query,
'pk_name' => $pk_name,
'returning_id' => $returning_id,
]
); );
} }
} elseif (count($this->insert_id_arr) > 1) { } elseif (count($this->insert_id_arr) > 1) {
// this error handling is only for INSERT (), (), ... sets // this error handling is only for INSERT (), (), ... sets
if ($stm_name === null) { if ($stm_name === null) {
$this->__dbWarning(32, $cursor, '[dbExec]'); $this->__dbWarning(32, $cursor, '[dbExec]', context: [
'query' => $query,
'pk_name' => $pk_name,
'returning_id' => $returning_id,
]);
} else { } else {
$this->__dbWarning( $this->__dbWarning(
32, 32,
false, false,
$stm_name . ': RETURNING returned an array (possible multiple insert)' 'RETURNING returned an array (possible multiple insert)',
context: [
'statement_name' => $stm_name,
'query' => $query,
'pk_name' => $pk_name,
'returning_id' => $returning_id,
]
); );
} }
} }