Ceci est le code que j'utilise pour essayer de mettre à jour l'enregistrement. Je ne vois aucun problème, mais cela ne jette pas une erreur et les États qui ont réussi. J'ai essayé quelques autres méthodes qui font de même, cela ne mettant pas à jour la ligne de la table MSSQL. La base de données / table est locale sur ma machine à exécuter des fenêtres 10 et IIS (je sais !!). Où est-ce que je me trompe exactement. Je peux me connecter, Delte et créer une bonne amende. Dois-je ajuster l'utilisateur $ ou la requête? p> p>
3 Réponses :
Avez-vous essayé cette question directement dans le studio de gestion MSSQL? P>
Après cela et que vous voyez, cela fonctionne bien, essayez de "echo" vos variables de poste pour voir si vous les obtenez correctement. P>
Fera, la requête fonctionne bien dans SSMS contre la table.
Alors ne comprends pas pourquoi cela fonctionnait de cette façon, mais pas dans votre code.
Je ne vois aucun Vous sélectionnez un (Tous) enregistrements avec BTW, vous permettez à chaque client de changer les enregistrements. Pas d'injection SQL, mais très probablement très mauvais. P> p> insérer code>. Au lieu de cela, vous n'utilisez que
update code> ce qui signifie qu'un enregistrement existant n'est modifié que. Est-ce que vous voulez?
ID =: ID code>, et ici
SET ID =: ID Code> Vous définissez
ID code> sur une valeur déjà définie. Est-ce que fait quelque chose, mais c'est un indice que quelque chose dans votre logique est faux. P>
Oui, les enregistrements sont déjà dans la table et sont identifiés via ID. Ceci est juste une preuve de concept, je vais sécuriser après avoir travaillé.
J'ai fait une erreur de recrue, j'essayais de mettre à jour une carte d'identité et d'horodatage dans MSSQL qui n'est pas autorisée. J'ai changé mon code en cela et ça a fonctionné bien:
$user =[ "id" => $_POST['id'], "firstname" => $_POST['firstname'], "lastname" => $_POST['lastname'], "email" => $_POST['email'], "age" => $_POST['age'], "location" => $_POST['location'], ]; $sql = "UPDATE users SET firstname = :firstname, lastname = :lastname, email = :email, age = :age, location = :location WHERE id = :id";
Vous ne devriez pas mettre à jour le
ID code> si vous utilisez cela pour trouver l'enregistrement. Supprimer
ID =: ID, CODE> à partir de votre
Set de mise à jour code> instruction et voyez si cela fonctionne.