Forum und email

mysql_query

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

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

Example#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());
}

?>

Example#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);
?>