Verwerken van bedrijfsnaam met speciale leestekens
Door
P Wever
op 03-01-2023 11:14
gewijzigd op 03-01-2023 11:16
3.215 views
Beste,
Ik ben bezig met een CRM aan het ontwikkelen en ik loop tegen het bedrijfsnaam aan tegen, ik kan hem niet verwerken binnen de database. Hoe kan ik dit tackelen? want het weergeven van alle bedrijfsinformatie gaat via bedrijfsnaam en de enkele en dubbele quotes snijden dan de string af. Hier zijn diverse voorbeelden;
v.v. d´Olde Veste ´54
Mini camping "Onder" de Heerenbrug
Bierproeverij ' de Beijerlandse Biersommelier '
precies: en dus niet zelf tekens gaan definieren die in een naam voor mogen komen.
Je sloot C&A, Hunkemöller en Me@Work4U uit omdat er "rare" tekens in de naam voorkwamen.
In deze discussie mis ik de -mijns inziens beste- oplossing met prepared statements.
Ruwweg:
<?php
$naam = $_POST['bedrijfsnaam'] or return [-1, 'Bedrijfsnaam mag niet leeg zijn'];
$mysqli = new mysqli($hostname, $dbuser, $dbpass, $dbname);
$stmt = $mysqli->stmt_init();
$stmt->prepare("INSERT INTO tabel (naam) VALUES (?)");
$stmt->bind_param("s", $naam);
$stmt->execute();
?>
Geen gedoe met real_escape_string() en zo, je bent immuun voor SQL-injectie, en je statement is herbruikbaar, wat scheelt in performance als je het statement meerdere malen moet uitvoeren.