' OR '1'='1
has no effect here.Hereβs the actual secure code:
// Avoids injection
$sql = "SELECT * FROM sqlgood WHERE username = ? AND password = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("ss", $username, $password);
$stmt->execute();
Try this: attempt to inject something like:
admin' OR '1'='1
β Wonβt work β
admin' AND SLEEP(5)--
β No delay β
This demo proves that prepared statements = protection.