Om een MySQL-query uit te voeren vanuit een PHP-bestand, moet u een verbinding tot stand brengen met de MySQL-database, de query voorbereiden en uitvoeren, en vervolgens de resultaten afhandelen. Hier ziet u hoe u de MySQLi-extensie gebruikt (aanbevolen in plaats van de oudere mysql-extensie, die verouderd is):
1. Breng een databaseverbinding tot stand:
Dit houdt in dat u verbinding maakt met uw MySQL-server met behulp van de juiste inloggegevens. Vervang de tijdelijke aanduidingen door uw daadwerkelijke inloggegevens:
```php
$servernaam ="localhost";
$gebruikersnaam ="uw_gebruikersnaam";
$wachtwoord ="uw_wachtwoord";
$dbname ="uw_database_naam";
// Maak verbinding
$conn =nieuwe mysqli($servernaam, $gebruikersnaam, $wachtwoord, $dbnaam);
// Controleer de verbinding
if ($conn->connect_error) {
die("Verbinding mislukt:" . $conn->connect_error);
}
echo "Succesvol verbinding gemaakt ";
?>
```
2. De query voorbereiden en uitvoeren:
In deze sectie wordt gedemonstreerd hoe u de query voorbereidt om kwetsbaarheden in SQL-injectie te voorkomen en hoe u deze vervolgens uitvoert. Gebruik altijd voorbereide instructies ter bescherming tegen SQL-injectie.
```php
// Voorbeeldquery om alle gegevens te selecteren uit een tabel met de naam 'users'
$sql ="SELECT id, naam, e-mailadres VAN gebruikers";
// Bereid de verklaring voor
$stmt =$conn->prepare($sql);
// Voer de instructie uit
if ($stmt->execute()) {
// ... resultaten verwerken (zie sectie 3) ...
} anders {
echo "Fout:". $stmt->fout;
}
?>
```
3. Behandel de resultaten:
Hoe u met de resultaten omgaat, is afhankelijk van het type query.
* `SELECT` zoekopdrachten: Deze retourneren gegevens. U moet resultaten aan variabelen binden en deze ophalen.
```php
// Resultaten binden
$stmt->bind_result($id, $name, $email);
// Resultaten ophalen
echo "ID | Naam | E-mail | ";
terwijl ($stmt->fetch()) {
echo " " . $id. " | " . $naam . " | " . $email . " | ";
}
echo " ";
// Sluit verklaring
$stmt->sluiten();
?>
```
* `INSERT`, `UPDATE`, `DELETE` zoekopdrachten: Deze wijzigen gegevens. Je controleert vooral op fouten. De eigenschap 'affected_rows' vertelt u hoeveel rijen zijn beïnvloed.
```php
// Voorbeeld INSERT-query
$sql ="INSERT INTO gebruikers (naam, e-mailadres) WAARDEN (?, ?)";
$stmt =$conn->prepare($sql);
$naam ="John Doe";
$email ="[email protected]";
$stmt->bind_param("ss", $name, $email); // "ss" specificeert gegevenstypen:string, string
if ($stmt->execute()) {
echo "Nieuw record succesvol aangemaakt. Betrokken rijen:" . $stmt->beïnvloede_rijen;
} anders {
echo "Fout:". $stmt->fout;
}
$stmt->sluiten();
?>
```
4. Sluit de verbinding:
Sluit altijd de databaseverbinding als u klaar bent.
```php
$conn->sluiten();
?>
```
Volledig voorbeeld (SELECT-query):
```php
$servernaam ="localhost";
$gebruikersnaam ="uw_gebruikersnaam";
$wachtwoord ="uw_wachtwoord";
$dbname ="uw_database_naam";
$conn =nieuwe mysqli($servernaam, $gebruikersnaam, $wachtwoord, $dbnaam);
if ($conn->connect_error) {
die("Verbinding mislukt:" . $conn->connect_error);
}
$sql ="SELECT id, naam, e-mailadres VAN gebruikers";
$stmt =$conn->prepare($sql);
$stmt->execute();
$stmt->bind_result($id, $name, $email);
echo "ID | Naam | E-mail | ";
terwijl ($stmt->fetch()) {
echo " " . $id. " | " . $naam . " | " . $email . " | ";
}
echo " ";
$stmt->sluiten();
$conn->sluiten();
?>
```
Vergeet niet om de tijdelijke aanduiding-waarden te vervangen door uw daadwerkelijke databasegegevens en tabelnaam. Zorg er ook voor dat de MySQLi-extensie is ingeschakeld in uw PHP-configuratie. Als u problemen ondervindt, controleer dan uw PHP-foutlogboeken voor meer details. Het gebruik van PDO (PHP Data Objects) is een andere uitstekende en veelzijdigere optie voor database-interacties in PHP. De principes zijn vergelijkbaar, maar de syntaxis is iets anders. |