6
votes

PHP MYSQL Update MOWER Variable sans requête SELECT SÉPART

Je sais qu'il y a un moyen de faire cela. Fondamentalement, j'ai la variable $ montante et veulent le retirer du montant de la colonne dans le stock de table.

Le problème est que j'ai normalement exécuté une requête SELECT, découvrez la valeur, puis déduisez la variable et exécutez une autre requête de mise à jour.

Quelle est la syntaxe pour exécuter une seule mise à jour qui va simplement moins la valeur.

Tout aidez apprécié.


0 commentaires

4 Réponses :


11
votes

C'est aussi simple que cela semble. Les parenthèses sont facultatives dans cet exemple. Assurez-vous d'utiliser la condition appropriée dans votre où code> clause! xxx pré>

la variable $ Montant code> est supposé être correctement échappé déjà, selon l'API MySQL que vous utilisez, ou mieux encore, un paramètre à un exemple préparé, Comme dans PDO: P>

$qry = "UPDATE table SET column = (column - :amount) WHERE somecondition;";
$stmt = $db->prepare($qry);
$stmt->execute(array(':amount' => $amount));


0 commentaires

1
votes

Essayez quelque chose comme ceci: xxx

si vous souhaitez vous assurer que montant ne passe pas ci-dessous zéro: xxx


0 commentaires

0
votes

Voulez-vous ci-dessous? XXX


0 commentaires

0
votes

Par curiosité obtenez-vous $ variable d'une autre sélection de SQL SELECT? Comme peut-être une liste de pièces ou quelque chose? Cela pourrait potentiellement être beaucoup plus rapide de gérer toute la chose dans une procédure stockée ou une sélection de composée.

Si cette variable $ est statique ou générée localement.


1 commentaires

Ah, dans cette cause +1 pour Michael