Files
roi-theme/wp-content/plugins/fluent-smtp/app/Services/DB/QueryBuilder/QueryObject.php
root a22573bf0b Commit inicial - WordPress Análisis de Precios Unitarios
- WordPress core y plugins
- Tema Twenty Twenty-Four configurado
- Plugin allow-unfiltered-html.php simplificado
- .gitignore configurado para excluir wp-config.php y uploads

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-03 21:04:30 -06:00

103 lines
2.1 KiB
PHP
Executable File

<?php
namespace FluentMail\App\Services\DB\QueryBuilder;
class QueryObject
{
/**
* @var string
*/
protected $sql;
/**
* @var \wpdb
*/
protected $db;
/**
* @var array
*/
protected $bindings = array();
public function __construct($sql, array $bindings)
{
$this->sql = (string) $sql;
$this->bindings = $bindings;
global $wpdb;
$this->db = $wpdb;
}
/**
* @return string
*/
public function getSql()
{
return $this->sql;
}
/**
* @return array
*/
public function getBindings()
{
return $this->bindings;
}
/**
* Get the raw/bound sql
*
* @return string
*/
public function getRawSql()
{
return $this->interpolateQuery($this->sql, $this->bindings);
}
/**
* Replaces any parameter placeholders in a query with the value of that
* parameter. Useful for debugging. Assumes anonymous parameters from
* $params are are in the same order as specified in $query
*
* Reference: http://stackoverflow.com/a/1376838/656489
*
* @param string $query The sql query with parameter placeholders
* @param array $params The array of substitution parameters
*
* @return string The interpolated query
*/
protected function interpolateQuery($query, $params)
{
$keys = $placeHolders = [];
foreach ($params as $key => $value) {
if (is_string($key)) {
$keys[] = '/:' . $key . '/';
} else {
$keys[] = '/[?]/';
}
$placeHolders[] = $this->getPlaceHolder($value);
}
$query = preg_replace($keys, $placeHolders, $query, 1, $count);
return $params ? $this->db->prepare($query, $params) : $query;
}
private function getPlaceHolder($value)
{
$placeHolder = '%s';
if (is_int($value)) {
$placeHolder = '%d';
} elseif (is_float($value)) {
$placeHolder = '%f';
}
return $placeHolder;
}
}