MySQL in PHP
1 bericht
• Pagina 1 van 1
MySQL in PHP
Inleiding
Wanneer we in PHP gaan werken met databases dan is MySQL de meest gebruikte. In dit artikel ga ik meer vertellen over de functies in PHP waarmee we gegevens uit de database kunnen halen en weer kunnen geven.
Verbinden met de server
Alvorens we gegevens in de database kunnen zetten of eruit kunnen halen moeten we verbinding maken met de MySQL server. Dat doen we door middel van de functiemysql_connect() . Dat doen we als volgt:
PHP
Achtermysql_connect() hebben we or die(...) gezet. Mocht PHP geen verbinding kunnen maken met de server, dan geeft hij dat netjes aan. Dit kan bijvoorbeeld zijn doordat de server niet werkt, of één of meerdere gegevens onjuist zijn.
Nu we contact hebben met de server kunnen we een database selecteren. Uit deze database kunnen we dan straks de gegevens halen. Contact leggen met de database doen we als volgt:
PHP
Ook hier zetten we weeror die(...) erachter. Mocht PHP de database dan niet kunnen vinden, dan geeft hij wederom de foutmelding.
Ten slotte willen we aan het einde van ons document de verbinding met de server verbreken. Dat doen we met het commandomysql_close() . Tussen de haakjes geven we de variabele van de verbinding. Als we er niet tussen zetten, wordt de laatst geopende verbinding gesloten.
Query's uitvoeren
Nu we verbinding kunnen maken met de server hebben we de mogelijkheid om query's uit te voeren. Dat betekent dat we gegevens kunnen toevoegen, aanpassen, verwijderen en ophalen. Om een query uit te voeren gebruiken we in PHP de functiemysql_query() . Deze kent twee parameters. De eerst is de query die uitgevoerd moet worden, de tweede is de link_identifier. Dat is de variabele van de verbinding. Deze gebruik je alleen wanneer je meerdere verbindingen open hebt staan. Doorgaans (voor kleine applicaties) is dit dus niet het geval en kun je de tweede parameter weg laten.
We zagen net bij het verbinding maken dat we achter de functieor die(...) zetten. Dat doen we bij query's uitvoeren ook. Alleen vullen we hem dan aan met mysql_error() . Mocht er dan een fout in de query zitten dan geeft mysql_error() aan wat de fout is. Dit is dus erg makkelijk met debuggen.
Je hebtmysql_error() dus niet nodig om een query uit te kunnen voeren, maar het is wel erg makkelijk. Een voorbeeld:
PHP
Nu hebben we dus de gegevens in de variabele $query zitten. Als je deze nu echo't krijg je als output ResourceId #.. . De gegevens zullen dus omgezet moeten worden.
Gegevens ophalen
Voor het ophalen gebruiken we even de volgende fictieve database:

Alvorens we de gegevens gaan weergeven gaan we eerst kijken of er wel gegevens zijn om weer te geven. Het kan zijn dat je eenWHERE statement in je query hebt. Bijvoorbeeld wanneer we alle mensen willen weergeven die Jansen heten. Maar het kan zijn dat die niet voorkomen in je database.
Om foutmeldingen te voorkomen gaan we dus eerst controleren of er gegevens in de database staan.
PHP
Met de functiemysql_num_rows() kun je het aantal gevonden resultaten opvragen. Wanneer deze gelijk is aan nul zijn er dus geen resultaten gevonden. Je kan mysql_num_rows() ook in een variabele zetten en echo'en.
Nu we dit gecontroleerd hebben kunnen we de gegevens gaan weergeven. Dit kan op verschillende manieren. De manier is afhankelijk van de hoeveelheid gegevens die je wilt opvragen en hoe je ze wilt opvragen.
Één gegeven opvragen
Wanneer we maar één gegeven op willen halen maken we gebruik vanmysql_result() . Als voorbeeld willen we de achternaam van de tweede gebruiker (tweede rij) in de tabel.
PHP
Zoals je ziet heeft de functies 3 parameters. De eerste is de query, de tweede is de rij in de tabel (beginnend bij nul) en de derde (optionele) parameter is de naam van de kolom. Je kan ook cijfers gebruiken.
Meerdere gegevens opvragen
Het kan zijn dat we niet 1 gegeven op willen vragen maar alle gegevens van de hele tabel. Dan gebruiken we één van demysql_fetch_...() functies. Fetchen betekent letterlijk ophalen. Eerst ga ik bespreken hoe je de gegevens op kan halen en vervolgens het verschil tussen de verschillende mysql_fetch_...() functies.
We willen graag alle gegevens van onze tabel contacten weergeven. Dat doen we als volgt:
PHP
Dit zal als resultaat hebben:
Je ziet dat we gebruik maken van een while. Deze while blijft lopen zolang de statement tussen de haakjesTRUE is. Dus zolang hij kan fetchen (zolang er rijen in de database staan) blijft hij lopen. Zodra de rijen op zijn zal de functie FALSE returnen waardoor de WHILE zal stoppen.
Je kan ook zonder de while werken, dan vraag je één enkele rij op. De volgende keer dat je de fetch dan weer gebruikt wordt de volgende rij opgevraagd.
Verschil tussen demysql_fetch_...() functies
Nu gaan we de verschillende functies voor fetchen bespreken. We hebben er vier, te weten:
PHP
Hierdoor krijg je:
Tenslotte wil ik nog even de functiesmysql_fetch_array() en mysql_fetch_object() bespreken. Deze hebben namelijk nog een tweede parameter. Je kunt namelijk nog een result_type toevoegen. Daarmee geef je aan hoe je de resultaten willen hebben. Dit geef je aan doormiddel van een constante:
mysql_fetch_array() dan kunnen we concluderen dat:
mysql_fetch_object() zit het verschil in de waarde na de ->. Dit kan dus numeriek, associatief of beiden zijn, afhankelijk van de result_type.
Wanneer we in PHP gaan werken met databases dan is MySQL de meest gebruikte. In dit artikel ga ik meer vertellen over de functies in PHP waarmee we gegevens uit de database kunnen halen en weer kunnen geven.
Verbinden met de server
Alvorens we gegevens in de database kunnen zetten of eruit kunnen halen moeten we verbinding maken met de MySQL server. Dat doen we door middel van de functie
PHP
- Code: Alles selecteren
<?php
$verbinding = mysql_connect( "localhost", "gebruikersnaam", "wachtwoord" ) or die( "Kan geen verbinding maken met de server" );
?>
Achter
Nu we contact hebben met de server kunnen we een database selecteren. Uit deze database kunnen we dan straks de gegevens halen. Contact leggen met de database doen we als volgt:
PHP
- Code: Alles selecteren
<?php
$db = mysql_select_db( "databasenaam" ) or die( "Kan niet verbinden met de database." );
?>
Ook hier zetten we weer
Ten slotte willen we aan het einde van ons document de verbinding met de server verbreken. Dat doen we met het commando
Query's uitvoeren
Nu we verbinding kunnen maken met de server hebben we de mogelijkheid om query's uit te voeren. Dat betekent dat we gegevens kunnen toevoegen, aanpassen, verwijderen en ophalen. Om een query uit te voeren gebruiken we in PHP de functie
We zagen net bij het verbinding maken dat we achter de functie
Je hebt
PHP
- Code: Alles selecteren
<?php
$sql = "SELECT `id`, `naam`, `achternaam` FROM `contacten`";
$query = mysql_query( $sql ) or die( mysql_error() );
?>
Nu hebben we dus de gegevens in de variabele $query zitten. Als je deze nu echo't krijg je als output Resource
Gegevens ophalen
Voor het ophalen gebruiken we even de volgende fictieve database:

Alvorens we de gegevens gaan weergeven gaan we eerst kijken of er wel gegevens zijn om weer te geven. Het kan zijn dat je een
Om foutmeldingen te voorkomen gaan we dus eerst controleren of er gegevens in de database staan.
PHP
- Code: Alles selecteren
<?php
$sql = "SELECT `id`, `naam`, `achternaam` FROM `contacten` WHERE `achternaam` = 'Jansen'";
$query = mysql_query( $sql ) or die( mysql_error() );
if( mysql_num_rows( $query ) == 0 )
{
echo "Er zijn geen resultaten gevonden.";
}
else
{
....
}
?>
Met de functie
Nu we dit gecontroleerd hebben kunnen we de gegevens gaan weergeven. Dit kan op verschillende manieren. De manier is afhankelijk van de hoeveelheid gegevens die je wilt opvragen en hoe je ze wilt opvragen.
Één gegeven opvragen
Wanneer we maar één gegeven op willen halen maken we gebruik van
PHP
- Code: Alles selecteren
<?php
$sql = "SELECT * FROM `contacten`";
$query = mysql_query( $sql ) or die( mysql_error() );
$result = mysql_result( $query, 1, "achternaam" );
// of: $result = mysql_result( $query, 1, 1 );
echo $result;
?>
Zoals je ziet heeft de functies 3 parameters. De eerste is de query, de tweede is de rij in de tabel (beginnend bij nul) en de derde (optionele) parameter is de naam van de kolom. Je kan ook cijfers gebruiken.
Meerdere gegevens opvragen
Het kan zijn dat we niet 1 gegeven op willen vragen maar alle gegevens van de hele tabel. Dan gebruiken we één van de
We willen graag alle gegevens van onze tabel contacten weergeven. Dat doen we als volgt:
PHP
- Code: Alles selecteren
<?php
$sql = "SELECT * FROM `contacten`";
$query = mysql_query( $sql ) or die( mysql_error() );
// Controleren of er resultaten zijn:
if( mysql_num_rows( $query ) == 0 )
{
echo "De tabel is leeg.";
}
else
{
// While maken
while( $uitvoer = mysql_fetch_assoc( $query ) )
{
echo $uitvoer['voornaam'] . ' ' . $uitvoer['achternaam'] . ' woont in ' . $uitvoer['woonplaats'] . '<br />';
}
}
?>
Dit zal als resultaat hebben:
Ronald Jansen woont in Amsterdam
Dora Peters woont in Rotterdam
Ellen Jansen woont in Utrecht
Je ziet dat we gebruik maken van een while. Deze while blijft lopen zolang de statement tussen de haakjes
Je kan ook zonder de while werken, dan vraag je één enkele rij op. De volgende keer dat je de fetch dan weer gebruikt wordt de volgende rij opgevraagd.
Verschil tussen de
Nu gaan we de verschillende functies voor fetchen bespreken. We hebben er vier, te weten:
mysql_fetch_row() : geeft een numerieke array terug.mysql_fetch_assoc() : geeft een associatieve array terug.mysql_fetch_array() : geeft een numerieke en associatieve array terug.mysql_fetch_object() : geeft de gegevens als object terug.
PHP
- Code: Alles selecteren
<?php
$sql = "SELECT * FROM `contacten` WHERE `id`='1'";
$query = mysql_query( $sql ) or die( mysql_error() );
$result = mysql_fetch_...( $query );
echo "<pre>";
print_r( $result );
echo "</pre>";
?>
Hierdoor krijg je:
- Code: Alles selecteren
_row
Array
(
[0] => 1
[1] => Jansen
[2] => Ronald
[3] => Amsterdam
)
_assoc
Array
(
[id] => 1
[achternaam] => Jansen
[voornaam] => Ronald
[woonplaats] => Amsterdam
)
_array
Array
(
[0] => 1
[id] => 1
[1] => Jansen
[achternaam] => Jansen
[2] => Ronald
[voornaam] => Ronald
[3] => Amsterdam
[woonplaats] => Amsterdam
)
_object
$result->id = "1"
$result->achtenaam = "Jansen"
$result->voornaam = "Ronald"
$result->woonplaats = "Amsterdam"
Tenslotte wil ik nog even de functies
MYSQL_ASSOC : associatief.MYSQL_NUM : numeriek.MYSQL_BOTH : numriek en associatief.
mysql_fetch_array( $query, MYSQL_ASSOC ) gelijk is aanmysql_fetch_assoc( $query ) mysql_fetch_array( $query, MYSQL_NUM ) gelijk is aanmysql_fetch_row( $query )
- Theo
- Oprichter
- Berichten: 1795
- Geregistreerd: 11 Jun 2005 17:43
- Woonplaats: in_array()
1 bericht
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast