(this: &mut ZObj, span: &mut Span)
| 231 | } |
| 232 | |
| 233 | fn after_hook_when_false(this: &mut ZObj, span: &mut Span) -> crate::Result<()> { |
| 234 | let info = this.call("errorInfo", [])?; |
| 235 | let info = info.as_z_arr().context("errorInfo isn't array")?; |
| 236 | |
| 237 | let state = get_error_info_item(info, 0)?.expect_z_str()?.to_str()?; |
| 238 | let code = { |
| 239 | let code = get_error_info_item(info, 1)?; |
| 240 | // PDOStatement::fetch |
| 241 | // In all cases, false is returned on failure or if there are no more rows. |
| 242 | if code.get_type_info().is_null() { |
| 243 | return Ok(()); |
| 244 | } |
| 245 | |
| 246 | &code.expect_long()?.to_string() |
| 247 | }; |
| 248 | let error = get_error_info_item(info, 2)?.expect_z_str()?.to_str()?; |
| 249 | |
| 250 | let span_object = span.span_object_mut(); |
| 251 | span_object.is_error = true; |
| 252 | span_object.add_log([("SQLSTATE", state), ("Error Code", code), ("Error", error)]); |
| 253 | |
| 254 | Ok(()) |
| 255 | } |
| 256 | |
| 257 | fn after_hook_when_pdo_statement(pdo: &mut ZObj, pdo_statement: &mut ZObj) -> crate::Result<()> { |
| 258 | let dsn = DSN_MAP |
no test coverage detected