Bon, j'ai fait une recherche sur celui-ci. Si vous pouvez obtenir une instance d'un DB_Adapter (que je crois que l'appel de ressource retournera), cela ne devrait pas être trop difficile. Au fond, Magento est basé sur Zend Framework, et l'adaptateur de base de données descend spécifiquement de Zend_Db_Adapter, donc vous pouvez utiliser ces méthodes gratuitement. Voir le lien avant pour plus d'exemples, mais voici la syntaxe fournie dans la documentation, qui devrait échapper à votre entrée automagiquement:
$write = Mage::getSingleton("core/resource")->getConnection("core_write");
// Concatenated with . for readability
$query = "insert into mage_example "
. "(name, email, company, description, status, date) values "
. "(:name, :email, :company, :desc, 0, NOW())";
$binds = array(
'name' => "name' or 1=1",
'email' => "email",
'company' => "company",
'desc' => "desc",
);
$write->query($query, $binds);
Encore une fois, voir la documentation pour plus d'informations.
MISE À JOUR:
J'ai changé l'exemple ci-dessus. L'objet que vous récupérez avec votre requête core_write est un objet PDO qui expose une méthode query
(voir ci-dessus) qui vous permettra d'utiliser des requêtes paramétrées. C'est DE loin une meilleure approche que d'essayer d'utiliser quelque chose comme mysql_real_escape_string pour la désinfection des données, et j'ai testé le code ci-dessus pour l'exactitude. Notez que, contrairement à la plupart des requêtes paramétrées MySQL, la liaison est faite avec: labels, et aussi que vous n'avez pas besoin de guillemets pour vos vars.
En réponse à votre autre point, et comme indiqué ci-dessous, la "bonne" façon de le faire dans Magento n'est pas d'utiliser des requêtes directes du tout. Les modèles d'objet Magento sont bien développés et ont pour but de vous faire abstraction de ce type de détails d'implémentation, car vous ne devriez pas avoir à vous en soucier. Pour le faire "correctement", créez un nouveau modèle basé sur la base de données et enregistrez le mal de tête.
$ réduction de valeur> citation ($ string); – ppostma1