jeg sletter data med følgende $sql = "DELETE FROM bro WHERE email='$email' and token = '$token'"; er der en måde man kan checke om data er slettet korekt eller skal man læse databasen først og checke om de findes?
Du kan godt tillade dig at antage at databasen fungerer korrekt således at hvis der er rækker som matcher kriterierne så bliver de slettet.
Hvorvidt der var rækker som matchede kriterierne bør du kunne finde ud af ved at checke om antal påvirkede rækker er større end 0. INSERT, UPDATE og DELETE returnerer antal påvirkede rækker.
Det kan du også. Bare vær opmærksom på risikoen for samtidigheds problemer: - du checker at ser at der er N rækker - en anden process sletter de N rækker - du sletter men sletter 0 rækker fordi de ikke er der længere
Når man arbejder med databaser er det godt altid at overveje concurrency problemer.
Hvad nu hvis en anden process opdaterer databasen samtidg med at jeg opdaterer? Kan jeg redesigne så jeg kun udfører en SQL sætning? Hvis jeg bruger flere SQL sætninger skal jeg bruge en transaktion?
så vidt jeg kan se bruges der ikke PHP i de eksempler jeg mangler noget der kan fortælle om en record er slettet hvis ikke melde fejl ud fra denne: $sql = "DELETE FROM database WHERE email='$email' and token = '$token'";
jeg har prøvet denne: $sql = "DELETE FROM database WHERE email='$email' and token = '$token'"; if ($conn->query($sql) === TRUE) { $conn->close(); $msg = "data slettet!"; } men den siger "data slettet" bare email er ok selvom token ikke er ok, men den sletter kun data hvis begge er ok
$sql = "DELETE FROM database WHERE email='$email' and token = '$token'"; $conn->query($sql);
->
$sql = "DELETE FROM database WHERE email = ? and token = ?; $stmt = $conn->prepare($sql); $stmt->bind_param('ss', $email, $token); $stmt->execute();
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.