mysql_query

(PHP 3, PHP 4, PHP 5)

mysql_query -- Sender en MySQL forespørgsel

Beskrivelse

resource mysql_query ( string query [, resource link_identifier] )

mysql_query() sender en forespørgsel (til den nuværende aktive database på den server der er specificeret med link_identifier).

Parameterliste

query

En SQL query

Forespørgsels strengen skal ikke ende med et semikolon.

link_identifier

En link beskriver, er returneret af mysql_connect().

Hvis link_identifier ikke er specifiveret, vil det sidste åbne link blive valgt. Hvis intet link er åbent, vil funktionen forsøge at etablere en forbindelse, som om mysql_connect() blev kaldt uden argumenter, og bruge denne. Resultatet af forespørgslen er gemt i en buffer.

Returneringsværdier

For SELECT, SHOW, DESCRIBE eller EXPLAIN forespørgslerne, vil mysql_query() returnere en resource ved succes, eller FALSE ved fejl.

For andre SQL forespørgsler, UPDATE, DELETE, DROP, osv, vil mysql_query() returnere TRUE ved succes og FALSE ved fejl.

Den returnerede resource, bør blive brugt sammen med mysql_fetch_array(), og andre funktioner, der arbejder med resulterende rabeller, for at tilgå den returnerede data.

Brug mysql_num_rows() for at finde ud af hvor mane rækker, der vlev returneret af en SELECT forespørgsel eller mysql_affected_rows() for at finde ud af hvor mange rækker der blev påvirket af DELETE, INSERT, REPLACE, eller UPDATE forespørgslerne.

mysql_query() vil også fejle og returnere FALSE hvis brugeren, ikke har rettigheder til de tabeller, der blev refereret til af forespørgslen.

Eksempler

Eksempel 1. Ugylding forespørgsel

Den følgende forespørgsel, er syntax mæssigt ugyldigt, så mysql_query() vil fejle og returnere FALSE.

<?php
$result
= mysql_query('SELECT * WHERE 1=1');
if (!
$result) {
    die(
'Ugyldig forespørgsel: ' . mysql_error());
}

?>

Eksempel 2. Gyldig forespørgsel

Den følgende forespørgsel er gyldig, så mysql_query() vil returnere en resource.

<?php
// Dette skal suppleres med en bruger f.eks.
$firstname = 'fred';
$lastname  = 'fox';

// Formuler forespørgslen
// Dette er den bedste måde at udføre en SQL forespørgslen
// For flere eksempler, se mysql_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
    
mysql_real_escape_string($firstname),
    
mysql_real_escape_string($lastname));

// Udfør forespørgslen
$result = mysql_query($query);

// Tjek resultatet
// Dette er den aktuelle forespørgsel, sendt til MySQL, og fejlen. Brugbart til fejlfindding.
if (!$result) {
    
$message  = 'Ugyldig forespørgsel: ' . mysql_error() . "\n";
    
$message .= 'Hele forespørgslen: ' . $query;
    die(
$message);
}

// Brug resultatet
// Et forsøg på at printe $result vil ikke give adgang til informationen i resourcen
// En af MySQL resultat funktionerne skal bruges
// Se også mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ($row = mysql_fetch_assoc($result)) {
    echo
$row['firstname'];
    echo
$row['lastname'];
    echo
$row['address'];
    echo
$row['age'];
}

// Befri resourcerne associeret med resultat sættet
// Dette vil automatisk blive gjort, når scriptet er eksekveret
mysql_free_result($result);
?>

Se også

mysql_connect()
mysql_error()
mysql_real_escape_string()
mysql_result()
mysql_fetch_assoc()
mysql_unbuffered_query()