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