mysql_query
(PHP 4, PHP 5, PECL mysql:1.0)
mysql_query — Sender en MySQL forespørgsel
Beskrivelse
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);
?>