Die MySQL-Datenbank verwendet die SQL-SELECT-Anweisung zum Abfragen von Daten.
Sie können Daten in der Datenbank über das MySQL-Eingabeaufforderungsfenster oder über PHP-Skripte abfragen.
Das Folgende ist die allgemeine SELECT-Syntax zum Abfragen von Daten in MySQL-Datenbanken:
SELECT Spaltenname, Spaltenname
FROM Tabellenname[WHERE-Klausel][OFFSET M ][LIMIT N]
Sie können eine oder mehrere Tabellen in der Abfrageanweisung verwenden. Verwenden Sie Kommas (,), um die Tabellen zu trennen, und verwenden Sie die WHERE-Anweisung, um die Abfragebedingungen festzulegen.
Der SELECT-Befehl kann einen oder mehrere Datensätze lesen.
Sie können ein Sternchen (*) verwenden, um andere Felder zu ersetzen, und die SELECT-Anweisung gibt alle Felddaten in der Tabelle zurück.
Sie können die WHERE-Anweisung verwenden, um jede beliebige Bedingung einzuschließen.
Mit OFFSET können Sie den Datenoffset angeben, bei dem die SELECT-Anweisung mit der Abfrage beginnt. Standardmäßig ist der Offset 0.
Sie können das LIMIT-Attribut verwenden, um die Anzahl der zurückgegebenen Datensätze festzulegen.
Daten über die Eingabeaufforderung abrufen
Das folgende Beispiel gibt alle Datensätze der Datentabelle runoob_tbl zurück:
[root@localhost runoob]# mysql -u root -pPasswort eingeben :
Willkommen beim MariaDB-Monitor. Befehle enden mit ; oder g.
Ihre MariaDB-Verbindungs-ID ist 2
Serverversion: 5.5.50-MariaDB MariaDB Server
Copyright (c) 2000 , 2016, Oracle, MariaDB Corporation Ab und andere.
Geben Sie „help;“ oder „h“ für Hilfe ein. Geben Sie „c“ ein, um die aktuelle Eingabeanweisung zu löschen.
MariaDB [(none ) ]> Verwenden Sie RUNOOB, um Tabellen- und Spaltennamen zu vervollständigen.
Sie können diese Funktion deaktivieren, um einen schnelleren Start zu erzielen.
Datenbank geändert
MariaDB [RUNOOB]> * von runoob_tbl
->+-----------+---------------+----------- - ---+----+
|. runoob_title |
+--------- -+ ---------------+---------------+---------------- --+
|. John Poul |. 2016-11-26 | -05 -06 |
|. cakin24 |. --------- +------------------+-----------------+4 Reihen in set (0,00 Sek.)
MariaDB [RUNOOB]>
Verwenden Sie ein PHP-Skript, um Daten abzurufen
$dbpass = 'rootpassword';
$conn = mysql_connect( $dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Verbindung konnte nicht hergestellt werden: ' . mysql_error());
}
$sql = 'SELECT runoob_id, runoob_title,
runoob_author, subscription_date
FROM runoob_tbl';
mysql_select_db('RUNOOB');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Daten konnten nicht abgerufen werden: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "Tutorial-ID:{$row['runoob_id']}
".
"Titel: {$row['runoob_title']}
".
" Autor: {$row['runoob_author']}
".
"Einreichungsdatum: {$row['submission_date']}
----------------------
";
}
echo „Daten erfolgreich abgerufen“;
mysql_close( $conn) ;
?>
Im obigen Beispiel wird jede Zeile gelesener Datensätze der Variablen $row zugewiesen und dann wird jeder Wert ausgedruckt.
Hinweis: Denken Sie daran, wenn Sie eine Variable in einer Zeichenfolge verwenden müssen, setzen Sie die Variable in geschweifte Klammern.
Im obigen Beispiel ist der zweite Parameter der PHP-Funktion mysql_fetch_array() MYSQL_ASSOC. Wenn dieser Parameter festgelegt ist, geben die Abfrageergebnisse ein assoziatives Array zurück. Sie können den Feldnamen als Index verwenden Array.
Methode 2:
PHP bietet eine weitere Funktion mysql_fetch_assoc(), die eine Zeile aus der Ergebnismenge als assoziatives Array abruft. Gibt ein assoziatives Array zurück, das auf den aus der Ergebnismenge entnommenen Zeilen basiert, oder false, wenn keine weiteren Zeilen vorhanden sind.
Das folgende Beispiel verwendet die Funktion mysql_fetch_assoc(), um alle Datensätze der Datentabelle runoob_tbl auszugeben:
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die ('Verbindung konnte nicht hergestellt werden: ' . mysql_error());
}
$sql = 'SELECT runoob_id, runoob_title,
runoob_author, subscription_date
FROM runoob_tbl';
mysql _select_db( 'RUNOOB');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Daten konnten nicht abgerufen werden: ' . mysql_error ()) ;
}
while($row = mysql_fetch_assoc($retval))
{
echo "Tutorial ID :{$row['runoob_id']}
".
" Titel: {$row['runoob_title']}
".
"Autor: {$row['runoob_author']}
".
"Einreichungsdatum: {$ row['submission_date']}
".
" "--------------------------------
";
}
echo „Daten erfolgreich abgerufen“;
mysql_close($conn);
?>
Methode 3:
Sie können die Konstante MYSQL_NUM auch als zweiten Parameter der PHP-Funktion mysql_fetch_array() verwenden, um ein numerisches Array zurückzugeben.
Das folgende Beispiel verwendet den Parameter MYSQL_NUM, um alle Datensätze der Datentabelle runoob_tbl anzuzeigen:
$dbhost = 'localhost:3036';
$dbuser = 'root' ;
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die ('Verbindung konnte nicht hergestellt werden: ' . mysql_error());
}
$sql = 'SELECT runoob_id, runoob_title,
runoob_author, subscription_date
FROM runoob_tbl';
mysql_select_d b ('RUNOOB') ;
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Daten konnten nicht abgerufen werden: ' . mysql_error() );
}
while($row = mysql_fetch_array($retval, MYSQL_NUM))
{
echo "Tutorial ID :{$row[0]}
".
"Titel: {$row[1]}
".
"Autor: {$row[2]}
".
"Einreichungsdatum: {$row[3]} < ;br> ".
"--------------------------------
";
}
echo „Daten erfolgreich abgerufen“;
mysql_close($conn);
?>
Die Ausgabeergebnisse der obigen drei Beispiele sind die gleichen lauten wie folgt:
Speicherfreigabe
Nachdem wir die SELECT-Anweisung ausgeführt haben, ist es eine gute Angewohnheit, den Cursorspeicher freizugeben. Die Speicherfreigabe kann über die PHP-Funktion mysql_free_result() erreicht werden.
Das folgende Beispiel demonstriert die Verwendung dieser Funktion. Dieses Beispiel fügt nur die Anweisung mysql_free_result($retval); basierend auf dem vorherigen Beispiel hinzu.
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect( $dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Konnte keine Verbindung herstellen: ' . mysql_error());
}
$sql = 'SELECT runoob_id, runoob_title,
runoob_author, subscription_date
FROM runoob_tbl';
mysql_select_db('RUNOOB');$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Daten konnten nicht abgerufen werden: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_NUM))
{
echo "Tutorial-ID: {$row[0]}
".
"Titel: {$row[1]}
".
"Autor: {$row[2 ]}
".
" "Einreichungsdatum: {$row[3]}
".
" "---------------- --------------
";
}mysql_free_result($retval);echo "Daten erfolgreich abgerufenn";
mysql_close($conn);
? >