Je sais qu'il y a un moyen de faire cela. Fondamentalement, j'ai la variable 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. P>
Quelle est la syntaxe pour exécuter une seule mise à jour qui va simplement moins la valeur. P>
Tout aidez apprécié. P> $ montante code> et veulent le retirer du montant de la colonne dans le stock de table. P>
4 Réponses :
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 la variable où code> clause! $ 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));
Essayez quelque chose comme ceci: si vous souhaitez vous assurer que montant code> ne passe pas ci-dessous zéro: p>
Voulez-vous ci-dessous?
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. p>
Si cette variable $ est statique ou générée localement. p>
Ah, dans cette cause +1 pour Michael