Есть ли способ подготовить инструкцию sql в prestashop с помощью экземпляра БД?

Есть ли способ подготовить инструкцию sql в prestashop с помощью экземпляра БД?

05.06.2015 10:23:19 Просмотров 43 Источник

Я хочу найти что-то вроде методов PDO, которые работают с объектом PrestaShop DB, или модулем, или новым классом, который использует класс PDO и подготавливает операторы перед выполнением.

Если я могу изменить следующее С помощью класса PDO

$result = Db::getIntance()->executeS('SELECT * FROM customer WHERE id = '.$id_customer);

Я не видел ничего подобного, и я хочу знать, если существует, прежде чем сделать больше кода без подготовки операторов

У вопроса есть решение - Посмотреть?

https://stackoverflow.com/questions/30674263/is-there-a-way-to-prepare-a-sql-statement-in-prestashop-using-db-instance#comment49415092_30674263
Зачем тебе это нужно? Он хорошо работает без него в любом случае
https://stackoverflow.com/questions/30674263/is-there-a-way-to-prepare-a-sql-statement-in-prestashop-using-db-instance#comment50913879_30674263
Подготовленный оператор используется в основном для того, чтобы избежать SQL-инъекции. Там не должно быть причин, чтобы не использовать его никогда, если есть параметры в запросе.

Ответы - Есть ли способ подготовить инструкцию sql в prestashop с помощью экземпляра БД? / Is there a way to prepare a sql statement in prestashop using Db instance?

UnLoCo

06.06.2015 11:39:20

Вы можете использовать класс DbQueryдля более чистого кода

$sql = new DbQuery();
//this line is optional
$sql->select('*');
//PrestaShop will add the prefix to the table
$sql->from('customer');
//or if you want to select specific columns
$sql->select('id_customer, name, etc..');
//each where line is considered as an AND
$sql->where('id = '.(int)$id_customer);
$sql->where('name = '.pSQL('name of customer'));
$result = Db::getIntance()->executeS($sql);
Fil0z0

08.06.2015 05:09:51

В prestashop вы можете использовать ORM следующим образом

Db::getInstance()->insert('target_table', array(
'id_target' => (int)$target,
'name'      => pSQL($name),
));
Закрыть X