From e82e4f607982ae65e66a3965380fe96c36919a5e Mon Sep 17 00:00:00 2001 From: Clemens Schwaighofer Date: Wed, 27 Nov 2024 14:35:30 +0900 Subject: [PATCH] Admin pages update --- www/admin/class_test.array.php | 3 - .../class_test.db.convert-placeholder.php | 233 ++++++++++++++++++ www/admin/class_test.db.dbReturn.php | 15 +- www/admin/class_test.db.php | 8 +- www/admin/class_test.php | 1 + 5 files changed, 244 insertions(+), 16 deletions(-) create mode 100644 www/admin/class_test.db.convert-placeholder.php diff --git a/www/admin/class_test.array.php b/www/admin/class_test.array.php index cadf8117..85dbfc0a 100644 --- a/www/admin/class_test.array.php +++ b/www/admin/class_test.array.php @@ -115,9 +115,6 @@ print "ARRAYFLATFORKEY: " . DgS::printAr(ArrayHandler::arrayFlatForKey($test_arr */ function rec(string $pre, string $cur, array $node = []) { - if (!is_array($node)) { - $node = []; - } print "
#### PRE: " . $pre . ", CUR: " . $cur . ", N-c: " . count($node) . " [" . join('|', array_keys($node)) . "]
"; if (!$pre) { diff --git a/www/admin/class_test.db.convert-placeholder.php b/www/admin/class_test.db.convert-placeholder.php new file mode 100644 index 00000000..8cca56a9 --- /dev/null +++ b/www/admin/class_test.db.convert-placeholder.php @@ -0,0 +1,233 @@ + BASE . LOG, + 'log_file_id' => $LOG_FILE_ID, + 'log_per_date' => true, +]); + + +$PAGE_NAME = 'TEST CLASS: DB CONVERT PLACEHOLDER'; +print ""; +print "" . $PAGE_NAME . ""; +print ""; +print '
Class Test Master
'; +print '

' . $PAGE_NAME . '

'; + +print "LOGFILE NAME: " . $log->getLogFile() . "
"; +print "LOGFILE ID: " . $log->getLogFileId() . "
"; + +print "Lookup Regex:
" . ConvertPlaceholder::REGEX_LOOKUP_PLACEHOLDERS . "
"; +print "Replace Named Regex:
" . ConvertPlaceholder::REGEX_REPLACE_NAMED . "
"; +print "Replace Named Regex:
" . ConvertPlaceholder::REGEX_REPLACE_QUESTION_MARK . "
"; +print "Replace Named Regex:
" . ConvertPlaceholder::REGEX_REPLACE_NUMBERED . "
"; + +$uniqid = \CoreLibs\Create\Uids::uniqIdShort(); +// $binary_data = $db->dbEscapeBytea(file_get_contents('class_test.db.php') ?: ''); +// $binary_data = file_get_contents('class_test.db.php') ?: ''; +$binary_data = ''; +$params = [ + $uniqid, + true, + 'STRING A', + 2, + 2.5, + 1, + date('H:m:s'), + date('Y-m-d H:i:s'), + json_encode(['a' => 'string', 'b' => 1, 'c' => 1.5, 'f' => true, 'g' => ['a', 1, 1.5]]), + null, + '{"a", "b"}', + '{1,2}', + '{"(array Text A, 5, 8.8)","(array Text B, 10, 15.2)"}', + '("Text", 4, 6.3)', + $binary_data +]; + +$query = <<"; +echo "
"; + +$query = "SELECT foo FROM bar WHERE baz = :baz AND buz = :baz AND biz = :biz AND boz = :bez"; +$params = [':baz' => 'SETBAZ', ':bez' => 'SETBEZ', ':biz' => 'SETBIZ']; +print "[NO PARAMS] Convert: " + . Support::printAr(ConvertPlaceholder::convertPlaceholderInQuery($query, $params)) + . "
"; +echo "
"; + +$query = "SELECT foo FROM bar WHERE baz = :baz AND buz = :baz AND biz = :biz AND boz = :bez"; +$params = null; +print "[NO PARAMS] Convert: " + . Support::printAr(ConvertPlaceholder::convertPlaceholderInQuery($query, $params)) + . "
"; +echo "
"; + +$query = "SELECT row_varchar FROM table_with_primary_key WHERE row_varchar <> :row_varchar"; +$params = null; +print "[NO PARAMS] Convert: " + . Support::printAr(ConvertPlaceholder::convertPlaceholderInQuery($query, $params)) + . "
"; +echo "
"; + +$query = "SELECT row_varchar, row_varchar_literal, row_int, row_date FROM table_with_primary_key"; +$params = null; +print "[NO PARAMS] TEST: " + . Support::printAr(ConvertPlaceholder::convertPlaceholderInQuery($query, $params)) + . "
"; +echo "
"; + +print "[P-CONV]: " + . Support::printAr( + ConvertPlaceholder::updateParamList([ + 'original' => [ + 'query' => 'SELECT foo FROM bar WHERE baz = :baz AND buz = :biz AND biz = :biz AND boz = :bez', + 'params' => [':baz' => 'SETBAZ', ':bez' => 'SETBEZ', ':biz' => 'SETBIZ'], + 'empty_params' => false, + ], + 'type' => 'named', + 'found' => 3, + // 'matches' => [ + // ':baz' + // ], + // 'params_lookup' => [ + // ':baz' => '$1' + // ], + // 'query' => "SELECT foo FROM bar WHERE baz = $1", + // 'parms' => [ + // 'SETBAZ' + // ], + ]) + ); + +echo "
"; + +// test connectors: = , <> () for query detection + +// convert placeholder tests +// ? -> $n +// :name -> $n + +// other way around (just visual) +$test_queries = [ + 'skip' => [ + 'query' => << [], + 'direction' => 'pg', + ], + 'numbers' => [ + 'query' => << [\CoreLibs\Create\Uids::uniqIdShort(), 'string A-1', 1234], + 'direction' => 'pdo', + ], + 'a?' => [ + 'query' => << [\CoreLibs\Create\Uids::uniqIdShort(), 'string A-1', 1234], + 'direction' => 'pg', + ], + 'b:' => [ + 'query' => << [ + ':test' => \CoreLibs\Create\Uids::uniqIdShort(), + ':string_a' => 'string B-1', + ':number_a' => 5678 + ], + 'direction' => 'pg', + ], + 'select, compare $' => [ + 'query' => <<= $1 OR row_int <= $2 OR + row_int > $3 OR row_int < $4 + OR row_int = $5 OR row_int <> $6 + SQL, + 'params' => null, + 'direction' => 'pg' + ] +]; + + +foreach ($test_queries as $info => $data) { + $query = $data['query']; + $params = $data['params']; + $direction = $data['direction']; + print "[$info] Convert: " + . Support::printAr(ConvertPlaceholder::convertPlaceholderInQuery($query, $params, $direction)) + . "
"; + echo "
"; +} + +print ""; +$log->debug('DEBUGEND', '==================================== [END]'); + +// __END__ diff --git a/www/admin/class_test.db.dbReturn.php b/www/admin/class_test.db.dbReturn.php index 6d9d141f..17166558 100644 --- a/www/admin/class_test.db.dbReturn.php +++ b/www/admin/class_test.db.dbReturn.php @@ -70,8 +70,7 @@ for ($i = 1; $i <= 6; $i++) { print $i . ") " . $cache_flag . ": " . "res: " . (is_bool($res) ? "Bool: " . Support::prBl($res) : - (is_array($res) ? - "Array: " . Support::prBl(is_array($res)) : '{-}') + "Array: Yes" ) . ", " . "cursor_ext:
" . Support::printAr(
 			SetVarType::setArray($db->dbGetCursorExt($q_db_ret))
@@ -89,8 +88,7 @@ for ($i = 1; $i <= 6; $i++) {
 	print $i . ") " . $cache_flag . ": "
 		. "res: " . (is_bool($res) ?
 			"Bool: " . Support::prBl($res) :
-			(is_array($res) ?
-				"Array: " . Support::prBl(is_array($res)) : '{-}')
+			"Array: Yes"
 		) . ", "
 		. "cursor_ext: 
" . Support::printAr(
 			SetVarType::setArray($db->dbGetCursorExt($q_db_ret))
@@ -108,8 +106,7 @@ for ($i = 1; $i <= 6; $i++) {
 	print $i . ") " . $cache_flag . ": "
 		. "res: " . (is_bool($res) ?
 			"Bool: " . Support::prBl($res) :
-			(is_array($res) ?
-				"Array: " . Support::prBl(is_array($res)) : '{-}')
+			"Array: Yes"
 		) . ", "
 		. "cursor_ext: 
" . Support::printAr(
 			SetVarType::setArray($db->dbGetCursorExt($q_db_ret))
@@ -127,8 +124,7 @@ for ($i = 1; $i <= 6; $i++) {
 	print $i . ") " . $cache_flag . ": "
 		. "res: " . (is_bool($res) ?
 			"Bool: " . Support::prBl($res) :
-			(is_array($res) ?
-				"Array: " . Support::prBl(is_array($res)) : '{-}')
+			"Array: Yes"
 		) . ", "
 		. "cursor_ext: 
" . Support::printAr(
 			SetVarType::setArray($db->dbGetCursorExt($q_db_ret))
@@ -146,8 +142,7 @@ for ($i = 1; $i <= 6; $i++) {
 	print $i . ") " . $cache_flag . ": "
 		. "res: " . (is_bool($res) ?
 			"Bool: " . Support::prBl($res) :
-			(is_array($res) ?
-				"Array: " . Support::prBl(is_array($res)) : '{-}')
+			"Array: Yes"
 		) . ", "
 		. "cursor_ext: 
" . Support::printAr(
 			SetVarType::setArray($db->dbGetCursorExt($q_db_ret))
diff --git a/www/admin/class_test.db.php b/www/admin/class_test.db.php
index 31afe4a7..158c0fff 100644
--- a/www/admin/class_test.db.php
+++ b/www/admin/class_test.db.php
@@ -316,7 +316,8 @@ print "EOM STRING EXEC RETURN TEST: " . print_r(
 	$db->dbReturnRowParams(
 		$query_select,
 		[$__last_insert_id]
-	)
+	),
+	true
 ) . "
"; // B $status = $db->dbExecParams( @@ -345,7 +346,8 @@ print "EOM STRING EXEC RETURN TEST: " . print_r( $db->dbReturnRowParams( $query_select, [$__last_insert_id] - ) + ), + true ) . "
"; // params > 10 for debug // error catcher @@ -674,7 +676,7 @@ echo "
"; print "COMPOSITE ELEMENT READ
"; $res = $db->dbReturnRow("SELECT item, count, (item).name, (item).price, (item).supplier_id FROM on_hand"); -print "ROW:
" . print_r($res) . "
"; +print "ROW:
" . print_r($res, true) . "
"; var_dump($res); print "Field Name/Types:
" . print_r($db->dbGetFieldNameTypes(), true) . "
"; echo "
"; diff --git a/www/admin/class_test.php b/www/admin/class_test.php index a5032e9a..a6355cec 100644 --- a/www/admin/class_test.php +++ b/www/admin/class_test.php @@ -73,6 +73,7 @@ $test_files = [ 'class_test.db.query-placeholder.php' => 'Class Test: DB query placeholder convert', 'class_test.db.dbReturn.php' => 'Class Test: DB dbReturn', 'class_test.db.single.php' => 'Class Test: DB single query tests', + 'class_test.db.convert-placeholder.php' => 'Class Test: DB convert placeholder', 'class_test.convert.colors.php' => 'Class Test: CONVERT COLORS', 'class_test.check.colors.php' => 'Class Test: CHECK COLORS', 'class_test.mime.php' => 'Class Test: MIME',