Forum und email

mysql_query

(PHP 4, PHP 5, PECL mysql:1.0)

mysql_query — Verstuur een MySQL query

Beschrijving

resource mysql_query ( string $query [, resource $link_identifier ] )

mysql_query() stuurt een query naar de huidige actieve database op de server die wordt geassocieerd met de gegeven link identifier. Als link_identifier niet wordt gegeven, wordt de laatst geopende link aangenomen. Als er geen link open is, probeert de functie een link te maken alsof mysql_connect() wordt aangeroepen zonder argumenten, en die te gebruiken.

Note: De query string moet niet eindigen met een puntkomma.

Alleen voor SELECT, SHOW, EXPLAIN en DESCRIBE queries geeft mysql_query() een resource identifier terug of FALSE als de query niet correct werd uitgevoerd. Voor andere soorten SQL queries geeft mysql_query() TRUE terug bij succes en FALSE bij een fout. Een niet-FALSE waarde geeft aan dat de query legaal was en kon worden uitgevoerd door de server. Hij geeft echter niets aan over het aantal rijen betrokken of teruggegeven. Het is zeer goed mogelijk dat een query goed wordt uitgevoerd maar geen rijen wijzigt of teruggeeft.

De volgende query is syntactisch ongeldig, dus mysql_query() faaalt en geeft FALSE terug:

Example#1 MySQL query voorbeeld

<php
$result = mysql_query("SELECT * WHERE 1=1")
    or die("Ongeldige query: " . mysql_error());
?>

De volgende query is semantisch ongeldig als my_col geen kolom is in de tabel my_tbl, dus mysql_query() faalt en geeft FALSE terug:

Example#2 MySQL query voorbeeld

<?php
$result 
mysql_query("SELECT my_col FROM my_tbl")
    or exit (
"Ongeldige query " mysql_error());
?>

mysql_query() zal ook falen en FALSE teruggeven als je geen permissie hebt om toegang te krijgen tot de tabellen die in de query genoemd worden.

Aangenomen dat de query goed gaat, kun je mysql_num_rows() aanroepen om uit te vinden hoeveel rijen er werden teruggegeven voor een SELECT statement, of mysql_affected_rows() om uit te vinden hoeveel rijen betrokken waren bij een DELETE, INSERT, REPLACE, of UPDATE query.

Alleen bij SELECT, SHOW, DESCRIBE en EXPLAIN queries geeft mysql_query() een nieuwe result identifier terug die je door kunt geven aan mysql_fetch_array() en andere functies die met resultaat tabellen van doen hebben. Wanneer je klaar bent met de resultaat set, kun je de bronnen die ermee geassocieerd zijn vrij maken door mysql_free_result() aan te roepen. Het geheugen zal echter automatisch worden vrijgemaakt aan het eind van de uitvoering van het script.

Zie ook: mysql_num_rows(), mysql_affected_rows(), mysql_unbuffered_query(), mysql_free_result(), mysql_fetch_array(), mysql_fetch_row(), mysql_fetch_assoc(), mysql_result(), mysql_select_db() en mysql_connect().