0
votes

Impossible de mettre à jour la table SQL via PHP

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 !!). XXX

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?


1 commentaires

Vous ne devriez pas mettre à jour le ID si vous utilisez cela pour trouver l'enregistrement. Supprimer ID =: ID, à partir de votre Set de mise à jour instruction et voyez si cela fonctionne.


3 Réponses :


0
votes

Avez-vous essayé cette question directement dans le studio de gestion MSSQL?

Après cela et que vous voyez, cela fonctionne bien, essayez de "echo" vos variables de poste pour voir si vous les obtenez correctement.


2 commentaires

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.



-1
votes

Je ne vois aucun insérer . Au lieu de cela, vous n'utilisez que update ce qui signifie qu'un enregistrement existant n'est modifié que. Est-ce que vous voulez? XXX

Vous sélectionnez un (Tous) enregistrements avec ID =: ID , et ici SET ID =: ID Vous définissez ID 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.

BTW, vous permettez à chaque client de changer les enregistrements. Pas d'injection SQL, mais très probablement très mauvais.


1 commentaires

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é.



0
votes

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";


0 commentaires