BASE . LOG, 'log_file_id' => $LOG_FILE_ID, 'log_per_date' => true, ]); // db connection and attach logger $db = new CoreLibs\DB\IO(DB_CONFIG, $log); $db->log->debug('START', '=============================>'); $PAGE_NAME = 'TEST CLASS: DB QUERY PLACEHOLDER'; print ""; print "" . $PAGE_NAME . ""; print ""; print '
Class Test Master
'; print '

' . $PAGE_NAME . '

'; print "LOGFILE NAME: " . $db->log->getLogFile() . "
"; print "LOGFILE ID: " . $db->log->getLogFileId() . "
"; print "DBINFO: " . $db->dbInfo() . "
"; // DB client encoding print "DB client encoding: " . $db->dbGetEncoding() . "
"; print "DB search path: " . $db->dbGetSchema() . "
"; $to_db_version = '15.2'; print "VERSION DB: " . $db->dbVersion() . "
"; print "SERVER ENCODING: " . $db->dbVersionInfo('server_encoding') . "
"; if (($dbh = $db->dbGetDbh()) instanceof \PgSql\Connection) { print "ALL OUTPUT [TEST]:
" . print_r(pg_version($dbh), true) . "

"; } else { print "NO DB HANDLER
"; } // turn on debug replace for placeholders $db->dbSetDebugReplacePlaceholder(true); print "TRUNCATE test_foo
"; $db->dbExec("TRUNCATE test_foo"); $uniqid = \CoreLibs\Create\Uids::uniqIdShort(); $binary_data = $db->dbEscapeBytea(file_get_contents('class_test.db.php') ?: ''); $query_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_insert = <<dbExecParams($query_insert, $query_params); echo "*
"; echo "INSERT ALL COLUMN TYPES: " . Support::printToString($query_params) . " |
" . "QUERY: " . $db->dbGetQuery() . " |
" . "PRIMARY KEY: " . Support::printToString($db->dbGetInsertPK()) . " |
" . "RETURNING EXT:
" . print_r($db->dbGetReturningExt(), true) . "
|
" . "RETURNING RETURN:
" . print_r($db->dbGetReturningArray(), true) . "
 |
" . "ERROR: " . $db->dbGetLastError(true) . "
"; echo "
"; // test connectors: = , <> () for query detection // convert placeholder tests // ? -> $n // :name -> $n // other way around (just visual) $test_queries = [ 'skip' => [ 'query' => << [], 'direction' => 'pg', ], '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', ], ]; $db->dbSetConvertPlaceholder(true); 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)) // . "
"; if ($db->dbCheckQueryForSelect($query)) { $row = $db->dbReturnRowParams($query, $params); print "[$info] SELECT: " . Support::prAr($row) . "
"; } else { $db->dbExecParams($query, $params); } print "[$info] " . Support::printAr($db->dbGetPlaceholderConverted()) . "
"; echo "
"; } echo "dbReturn read:
"; while ( is_array($res = $db->dbReturnParams( <<"; } print "CursorExt: " . Support::prAr($db->dbGetCursorExt(<<dbReturnRowParams(<<dbGetPlaceholderConverted()) . "
"; echo "dbReturn read LIKE:
"; while ( is_array($res = $db->dbReturnParams( <<"; } print ""; $db->log->debug('DEBUGEND', '==================================== [END]'); // __END__