J'essaie de mettre à jour des données de ma base de données, mais rien que j'ai essayé / trouvé a été de succès pour moi. Il n'y a aucune erreur ni rien, littéralement rien ne se passe. La page se recharge mais elle ne stocke rien dans la base de données. Comment puis-je résoudre ce problème?
Le code: strong> p>
3 Réponses :
Lorsque vous utilisez des guillemets simples '' avec une variable, PHP le comprend comme une chaîne non variable. Vous pouvez donc vouloir modifier votre instruction de mise à jour sur ou alternativement p> Cependant, ce n'est pas le moyen standard de faire des choses, et Invitez les injections SQL, vous ferez mieux d'utiliser PDO ou un autre mécanisme pour le rendre plus sécurisé. https://www.w3schools.com/sql/sql_inject.asp P > p>
Cette réponse favorise la création d'énoncés SQL via une concaténation de chaînes, qui est enclin à l'erreur et active les attaques de type d'injection SQL. Suivez ce conseil que si cela ne vous dérange pas que votre site Web soit piraté!
@Shadow Réponse modifiée.
Ne le rend pas mieux.
Vous souhaitez utiliser la classe PDO que vous avez définie là-bas au lieu de $ Conn (qui n'est pas défini), peut aussi bien mettre les variables entre crochets pour vous assurer qu'ils sont interprétés correctement, si vous utilisez un littéral à chaîne. Également, comme il se tient maintenant, ce n'est pas une déclaration préparée appropriée. Vous devez utiliser Binkparam fonction comme sur le poste de mise à jour initial. P> Voici comment il ressemblerait comme une déclaration préparée appropriée. P> $updateBookRecord = "UPDATE books SET episodes=:episode WHERE id=:book_id";
$UpdateBook = $obd->prepare($updateBookRecord);
$UpdateBook->bindParam(':episode',$episode,PDO::PARAM_INT);
$UpdateBook->bindParam(':book_id',$book_id,PDO::PARAM_INT);
$UpdateBook->execute();
Une mise à jour peut mettre à jour avec succès 0 rangées. Je triple que vous vérifiez votre clause où voir s'il tente de faire correspondre des lignes existantes. P>