From 11a8c6440b13cbaf6f6d3cefb2e54cc0e70963a9 Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Tue, 28 Mar 2023 16:46:34 +0900 Subject: [PATCH] Update DB\IO debug output for parameter queries if value null set "NULL" else convert to string Update class basic test with various type tests --- www/admin/class_test.db.php | 72 ++++++++++++++++++++++++++++--------- www/lib/CoreLibs/DB/IO.php | 4 ++- 2 files changed, 59 insertions(+), 17 deletions(-) diff --git a/www/admin/class_test.db.php b/www/admin/class_test.db.php index 036a8829..c79b6a22 100644 --- a/www/admin/class_test.db.php +++ b/www/admin/class_test.db.php @@ -226,54 +226,94 @@ print "EOM STRING PREPARE INSERT[ins_test_foo_eom] STATUS: " . Support::printToS . "RETURNING EXT: " . print_r($db->dbGetReturningExt(), true) . " | " . "RETURNING RETURN: " . print_r($db->dbGetReturningArray(), true) . "
"; +echo "*
"; $status = $db->dbExecParams($query, ['EOM BAR TEST PARAMS ' . time()]); -print "EOM STRING EXEC PARAMS INSERT[ins_test_foo_eom] STATUS: " . Support::printToString($status) . " |
" +print "EOM STRING EXEC PARAMS INSERT STATUS: " . Support::printToString($status) . " |
" . " |
" . "PRIMARY KEY: " . Support::printToString($db->dbGetInsertPK()) . " | " . "RETURNING EXT: " . print_r($db->dbGetReturningExt(), true) . " | " . "RETURNING RETURN: " . print_r($db->dbGetReturningArray(), true) . "
"; -$query = <<dbExecParams( - $query, + $query_insert, [ 'EOM BAR TEST PARAMS MULTI ' . time(), true, 'string a', 1, 1.5, - '1h' + '1h', + '2023-01-01 12:12:12', + json_encode(['a' => 'b', 'c' => 1]) ] ); $__last_insert_id = $db->dbGetInsertPK(); -print "EOM STRING EXEC PARAMS MULTI INSERT[ins_test_foo_eom] STATUS: " . Support::printToString($status) . " |
" +echo "*
"; +print "EOM STRING EXEC PARAMS MULTI INSERT STATUS: " . Support::printToString($status) . " |
" . " |
" . "PRIMARY KEY: " . Support::printToString($db->dbGetInsertPK()) . " | " . "RETURNING EXT: " . print_r($db->dbGetReturningExt(), true) . " | " . "RETURNING RETURN: " . print_r($db->dbGetReturningArray(), true) . "
"; -$query = <<dbReturnRowParams( - $query, + $query_select, [$__last_insert_id] ) ) . "
"; +// B +$status = $db->dbExecParams( + $query_insert, + [ + 'EOM BAR TEST PARAMS MULTI NULL ' . time(), + true, + 'string a', + null, + null, + '1h', + null, + null + ] +); +$__last_insert_id = $db->dbGetInsertPK(); +echo "*
"; +print "EOM STRING EXEC PARAMS MULTI NULL INSERT STATUS: " + . Support::printToString($status) . " |
" + . " |
" + . "PRIMARY KEY: " . Support::printToString($db->dbGetInsertPK()) . " | " + . "RETURNING EXT: " . print_r($db->dbGetReturningExt(), true) . " | " + . "RETURNING RETURN: " . print_r($db->dbGetReturningArray(), true) + . "ERROR: " . $db->dbGetLastError(true) . "
"; +print "EOM STRING EXEC RETURN TEST: " . print_r( + $db->dbReturnRowParams( + $query_select, + [$__last_insert_id] + ) +) . "
"; +echo "
"; // returning test with multiple entries // $status = $db->db_exec( diff --git a/www/lib/CoreLibs/DB/IO.php b/www/lib/CoreLibs/DB/IO.php index aa681ea6..8f651593 100644 --- a/www/lib/CoreLibs/DB/IO.php +++ b/www/lib/CoreLibs/DB/IO.php @@ -892,7 +892,9 @@ class IO for ($i = 0, $iMax = count($keys); $i < $iMax; $i++) { $keys[$i] = '$' . ($keys[$i] + 1); // prefix data set with parameter pos - $data[$i] = $keys[$i] . ':' . $data[$i]; + $data[$i] = $keys[$i] . ':' . ($data[$i] === null ? + '"NULL"' : (string)$data[$i] + ); } // simply replace the $1, $2, ... with the actual data and return it return str_replace(