J'ai un site Web où un utilisateur peut télécharger des images pour une propriété immobilière.
La structure de la table:Valeurs d'incrémentation à l'aide de Zend_DB_Table Raw SQL
image_id
property_id
userid
filename
thumbfilename
display_order
timestamp
Le scénario: Lorsqu'un utilisateur télécharge plusieurs images, il/elle doit être en mesure de mettre la photo principale de leurs images téléchargées pour la propriété spécifiée.
Le code:
$sql = 'UPDATE property_images SET display_order = display_order + 1 WHERE property_id = "' . $this->_request->getParam('propertyid') . '"';
$images->getAdapter()->fetchAll($sql);
$images->update(array("display_order" => 1), 'image_id = "' . $this->_request->getParam('imageid') . '"');
La question: Je reçois une "erreur générale" lorsque vous appelez images- $> getAdapter() -> fetchAll(); Le SQL est cependant exécuté avec succès mais Zend_DB_Table renvoie une exception et ne passera pas à la commande suivante. Toutes les idées/suggestions seraient appréciées.
Je ne suis pas vulnérable à l'injection SQL car cela se fait en utilisant les valeurs saisies dans le script lui-même avant que l'utilisateur obtienne l'information. Ils n'obtiennent rien d'autre que l'identifiant de la propriété et l'identifiant de l'image. Je vérifie que l'utilisateur connecté est également le propriétaire de la propriété et de l'image. Merci quand même. –
Assez juste. J'échapperais encore aux choses explicitement, au cas où la logique externe changerait. Le code a tendance à être réutilisé, et vous vous reposez sur le code d'autorisation pour faire en sorte que les mauvais paramètres ne parviennent jamais à la base de données. – timdev