[verwijderd] Het beste kun je MySQLi of PDO prepared statements gebruiken of overstappen naar PDO. PDO is de meest voor de hand liggende oplossing en de makkelijkste variant om prepared statements te gebruiken.
Ik zal een stukje PDO code laten zien.
PDO voorbeeld
Connect met je database op de PDO manier: lees hier meer en gebruik de volgende code:
// Prepare
$query = $conn->prepare("SELECT * FROM shop_products WHERE id = :id LIMIT 1");
// Execute
$query->execute([
':id' => $id
]);
// Resultaten?
if ($query->rowCount() === 0) {
exit("404: Product niet gevonden");
}
// Fetch resultaten naar $product
$product = $query->fetch(PDO::FETCH_ASSOC);
Je kan er een try-catch omheen zetten om eventuele query fouten op te vangen (aangeraden)
Je volledige code in PDO wordt dan:
De code is getest en werkt. Maakt ook gelijk gebruik van een try-catch en heeft voorbeeld $conn variable. Als je in PDO try-catch wilt gebruiken, moet je dit aangeven nadat de connectie aangemaakt is (zoals beneden wordt weergegeven).
<?php
// Include de config voor je database connectie
// $conn = new PDO('mysql:host=localhost;dbname=devnl_test', 'root', 'password');
// $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(!isset($_GET["id"]) || !is_numeric($_GET["id"])) {
exit("Invalid or missing parameter"); // Doe iets om dit af te vangen
}
$id = $_GET["id"];
try {
// Prepare
$query = $conn->prepare("SELECT * FROM shop_products WHERE id = :id LIMIT 1");
// Execute
$query->execute([
':id' => $id
]);
// Resultaten?
if ($query->rowCount() === 0) {
exit("404: Product niet gevonden");
}
// Fetch resultaten naar $product
$product = $query->fetch(PDO::FETCH_ASSOC);
} catch (Exception $e) {
exit("Foutmelding: " . $e->getMessage());
}
echo $product['title'] . '<br />' . $product['description'];