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 "
" . print_r(pg_version($dbh), true) . "
" . CoreLibs\DB\Support\ConvertPlaceholder::REGEX_LOOKUP_PLACEHOLDERS . ""; // turn on debug replace for placeholders $db->dbSetDebugReplacePlaceholder(true); print "TRUNCATE test_foo
" . $db->dbGetQuery() . "|
" . print_r($db->dbGetReturningExt(), true) . "|
" . print_r($db->dbGetReturningArray(), true) . "|
" . "ERROR: " . $db->dbGetLastError(true) . "
"; echo "
"; print "ANY call
"; $query = <<dbReturnParams($query, [$query_value]))) { print "Result: " . Support::prAr($res) . "
"; } echo "
"; echo "CASE part
"; $query = <<1 THEN $1 ELSE 1::INT END)::INT WHERE string_a = $2 SQL; echo "QUERY: " . $query . ""; $res = $db->dbExecParams($query, [1, 'foobar']); print "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', ], '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 number_a <= $2 OR number_a > $3 OR number_a < $4 OR number_a = $5 OR number_a <> $6 SQL, 'params' => [1, 2, 3, 4, 5, 6], '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 "ERROR: " . $db->dbGetLastError(true) . "
"; print "[$info] " . Support::printAr($db->dbGetPlaceholderConverted()) . "
"; echo "
"; } echo "dbReturn read:
"; while ( is_array($res = $db->dbReturnParams( <<RES: " . Support::prAr($res) . "
"; } print "ERROR: " . $db->dbGetLastError(true) . "
"; echo "
"; print "CursorExt: " . Support::prAr($db->dbGetCursorExt(<<"; // ERROR BELOW: missing params $res = $db->dbReturnRowParams(<< dbGetPlaceholderConverted()) . "
"; print "ERROR: " . $db->dbGetLastError(true) . "
"; echo "
"; // ERROR BELOW: LIKE cannot have placeholder echo "dbReturn read LIKE:
"; while ( is_array($res = $db->dbReturnParams( <<"; } print "ERROR: " . $db->dbGetLastError(true) . "
"; print ""; $db->log->debug('DEBUGEND', '==================================== [END]'); // __END__