Jag sparar mailadressen vid beställning av ett objekt. eftersom en köpare kan registrera flera beställningar efter varandra så adderar jag ett datum-tid till mailadressen.
När jag sedan skriver ut kostnaden så skall den beräknas efter hur många item som finns på en viss mailadress.
Jag söker i databasen och hittar mailadresserna. Men hur ser jag sedan hur många träffar jag fått? Det står helt stilla nu för tiden så jag behöver hjälp.
Hett tips: skapa ALDRIG SQL frågor genom att klippa ihop strängar sådär. Det kanske bara är ett exempel du visar nu, men om du gör det i produktion och jag använder e-mail i stil med ”;DELETE * FROM cc_kund;” så blir det tråkigt…
Mysqli förhindrar att det utförs två queries samtidigt om man inte använder mysqli_multi_query() så just agehalls exempel borde inte funka.
Finns dock andra fulingar man kan göra så prepared statements är ändå kung
$userMail = 'Olg%';
$sql = "SELECT * FROM users WHERE id like ?";
$stmt = $con->prepare($sql);
echo $userMail; //Hit funkar det
$stmt->bind_param("s", $userMail); //Här går det fel och stannar, varken med eller utan %-tecknet
echo $userMail; // Hit kommer det inte
$stmt->execute();
$result = $stmt->get_result();
$user = $result->fetch_assoc();
echo $user;
En annan sak med det länkade exemplet är att programmet dör
när det misslyckas. Så måste det inte vara. Man kan lika gärna
använda en eller flera variabler som håller reda på om det blir fel.
Då kan man börja och avsluta sidan hur man vill genom att titta
på variabeln eller variablerna både där och lite senare, hur det gick.