J'ai un datatable avec des informations sur l'utilisateur et une colonne appelée 'Bits'. Il y a une fonction de transfert et je voudrais transférer x quantité de bits de l'utilisateur connecté à l'utilisateur qu'ils spécifient. J'ai la fonction suivante qui fonctionne, mais je voudrais savoir s'il y a une meilleure façon (plus simple, plus propre, plus rapide?) De faire tout cela, et éventuellement retourner la ligne de la première instruction SQL à la fin. Je ne suis pas un utilisateur avancé de MySQL par tous les moyens, mais je suis presque sûr qu'il y a une fonction qui me manque et qui pourrait rendre cela beaucoup plus facile.Mise à jour de deux lignes à ajouter et soustraire
function transferBits($toid, $amount)
{
global $loggedInUser, $db;
$fromid = $loggedInUser->user_id;
$sql = "INSERT INTO `dl_Transfers` SET From_ID = '".$db->sql_escape($fromid)."',
`To_ID`='".$db->sql_escape($toid)."',
`Bits`='".$db->sql_escape($amount)."',
`When`=Now()";
$result = $db->sql_query($sql);
$sql2 = "UPDATE `dl_Users` SET Bits = Bits - '".$db->sql_escape($amount)."' WHERE `User_ID` = '".$db->sql_escape($fromid)."'";
$result2 = $db->sql_query($sql2);
$sql3 = "UPDATE `dl_Users` SET Bits = Bits + '".$db->sql_escape($amount)."' WHERE `User_ID` = '".$db->sql_escape($toid)."'";
$result3 = $db->sql_query($sql3);
}
je regarderais certainement en faire cela en utilisant les transactions dans la base de données; Si votre code est interrompu à mi-chemin, vos totaux seront incohérents. – andrewsi
@andrewsi qui est la beauté de la restauration: D –