La clase "DB" está hecho de dos clases:
La clase "Db", que se puede encontrar en el /classes/db/Db.php.
Con una subclase que se extiende de la clase "Db". 3 opciones: MySQL, MySQLi y PDO.
PDO se utiliza de forma predeterminada; sin embargo, si la extensión PDO no está instalado en el servidor, la extensión MySQLi se utiliza en su lugar. Y si MySQLi no está instalado , se utiliza MySQL.
Se recomienda crear una instancia:
$db = Db::getInstance(); ó $db = Db::getInstance(_PS_USE_SQL_SLAVE_);
Sólo se debe utilizar el argumento PS_USE_SQL_SLAVE a la hora de hacer consultas de sólo lectura, y sólo si éstos no necesita un resultado que se actualize inmediatamente con un resultado.
Metodos disponibles:
insertar()
insert ($ tabla, $ data, $ null_values = false, $ use_cache = true, $ type = Db :: INSERT, add_prefix $ = true).
Este método se ha creado para generar automáticamente la inserción de datos en la base de datos, a partir de una tabla de datos. Debe ser utilizado en lugar de hacer consultas INSERT, a menos que estas consultas sean bastante complejas.
ejemplo:
$target = Tools::getValue('id');
$name = Tools::getValue('name');
Db::getInstance()->insert('target_table', array(
'id_target' => (int)$target,
'name' => pSQL($name),
));
Activar este código genera la siguiente consulta SQL:
INSERT INTO `prefix_target_table` (`id_target`, `name`) VALUES (10, 'myName')
update()
update($table, $data, $where = '', $limit = 0, $null_values = false, $use_cache = true, $add_prefix = true)
Este método funciona como el método insert() lo hace, pero para la actualización de datos.
delete()
delete($table, $where = '', $limit = 0, $use_cache = true, $add_prefix = true).
Este método es un equivalente para insertar () y update (), solo que para la eliminación de datos.
El parámetro $limit le permite limitar el número de registros a eliminar. La otra ventaja de este método es que va a ser utilizado por el sistema de caché de PrestaShop, y por lo tanto va a borrar las consultas afectadas en la memoria caché, salvo que el $use_cache sea falsa.
El parámetro $limit le permite limitar el número de registros a eliminar. La otra ventaja de este método es que va a ser utilizado por el sistema de caché de PrestaShop, y por lo tanto va a borrar las consultas afectadas en la memoria caché, salvo que el $use_cache sea falsa.
ejemplo:
Db::getInstance()->delete('target_table', 'myField < 15', 3);
execute()
execute($sql, $use_cache = 1).
Este método ejecuta la consulta SQL. Sólo se debe utilizar para las consultas de "escribir" (INSERT, UPDATE, DELETE, TRUNCATE, etc.), ya que también elimina la caché de consultas.
ejemplo:
$sql = 'DELETE FROM '._DB_PREFIX_.'product WHERE active = 0';
if (!Db::getInstance()->execute($sql))
die('Erreur etc.)';
query()
query($sql).
hace lo mismo que el método execute(), con dos excepciones:
- Sin gestión de control de caché.
- No devolverá un valor lógico; en su lugar devuelve un recurso de base de datos que se puede utilizar con otros métodos de la clase de base de datos, tales como nextrow().
- Sin gestión de control de caché.
- No devolverá un valor lógico; en su lugar devuelve un recurso de base de datos que se puede utilizar con otros métodos de la clase de base de datos, tales como nextrow().
executeS()
executeS($sql, $array = true, $use_cache = 1).
Este método ejecuta una consulta SQL, y hace que todos los resultados estén disponibles a través de una matriz multidimensional. Sólo se debe utilizar para las consultas de "leer". Los resultados de la consulta se almacenan en caché, a menos que el parámetro $ use_cache se establece en false. El segundo parámetro, $array(), es obsoleto y no debe utilizarse.
ejemplo:
$sql = 'SELECT * FROM '._DB_PREFIX_.'shop';
if ($results = Db::getInstance()->ExecuteS($sql))
foreach ($results as $row)
echo $row['id_shop'].' :: '.$row['name'].'<br />';
getRow()
getRow($sql, $use_cache = 1).
Este método realiza una consulta SQL y recupera la primera fila de los resultados. Sólo se debe utilizar con las consultas de "leer". Los resultados de la consulta se almacenan en caché.
Este método agrega automáticamente una cláusula LIMIT para la consulta.
ejemplo:
$sql = 'SELECT * FROM '._DB_PREFIX_.'shop
WHERE id_shop = 42’;
if ($row = Db::getInstance()->getRow($sql))
echo $row['id_shop'].' :: '.$row['name'];
getValue()
getValue($sql, $use_cache = 1).
Funciona igual que getRow().
getValue () no protege el código de los intentos de hacking.Tiene que asegurar sus datos usted mismo.
El método de PrestaShop psql($valor) ayuda a proteger su base de datos contra las inyecciones SQL.
Algunos otros métodos
Insert_id(): devuelve el identificador creado durante la última consulta INSERT.
Affected_rows(): Devuelve el número de líneas afectadas por la última consulta UPDATE o DELETE.
getMsgError(): devuelve el mensaje de error más reciente, si la consulta ha fallado.
getNumberError(): devuelve el número de error más reciente, si la consulta ha fallado.
Puedes completar la información aquí y aquí
executeS($sql, $array = true, $use_cache = 1).
Este método ejecuta una consulta SQL, y hace que todos los resultados estén disponibles a través de una matriz multidimensional. Sólo se debe utilizar para las consultas de "leer". Los resultados de la consulta se almacenan en caché, a menos que el parámetro $ use_cache se establece en false. El segundo parámetro, $array(), es obsoleto y no debe utilizarse.
ejemplo:
$sql = 'SELECT * FROM '._DB_PREFIX_.'shop';
if ($results = Db::getInstance()->ExecuteS($sql))
foreach ($results as $row)
echo $row['id_shop'].' :: '.$row['name'].'<br />';
getRow($sql, $use_cache = 1).
Este método realiza una consulta SQL y recupera la primera fila de los resultados. Sólo se debe utilizar con las consultas de "leer". Los resultados de la consulta se almacenan en caché.
Este método agrega automáticamente una cláusula LIMIT para la consulta.
ejemplo:
$sql = 'SELECT * FROM '._DB_PREFIX_.'shop
WHERE id_shop = 42’;
if ($row = Db::getInstance()->getRow($sql))
echo $row['id_shop'].' :: '.$row['name'];
getValue()
getValue($sql, $use_cache = 1).
Funciona igual que getRow().
getValue () no protege el código de los intentos de hacking.Tiene que asegurar sus datos usted mismo.
El método de PrestaShop psql($valor) ayuda a proteger su base de datos contra las inyecciones SQL.
Algunos otros métodos
Insert_id(): devuelve el identificador creado durante la última consulta INSERT.
Affected_rows(): Devuelve el número de líneas afectadas por la última consulta UPDATE o DELETE.
getMsgError(): devuelve el mensaje de error más reciente, si la consulta ha fallado.
getNumberError(): devuelve el número de error más reciente, si la consulta ha fallado.
Puedes completar la información aquí y aquí
0 comentarios:
Publicar un comentario