Katalog artykułów
Jak wykonać zapytanie o dane z tabeli w bazie danych MySQL ? Instrukcja/polecenie/składnia zapytania
MySQL Zapytanie o dane
Bazy danych MySQL używają instrukcji SQL SELECT do wykonywania zapytań o dane.
Możesz wyszukiwać dane w bazie danych za pomocą okna wiersza poleceń mysql> lub za pomocą skryptu PHP.
gramatyka
Poniżej znajduje się ogólna składnia SELECT do wykonywania zapytań o dane w bazie danych MySQL:
SELECT column_name,column_name FROM table_name [WHERE Clause] [OFFSET M ][LIMIT N]
- W instrukcji zapytania można użyć jednej lub więcej tabel, oddzielić je przecinkami (,) i użyć instrukcji WHERE do ustawienia warunków zapytania.
- Polecenie SELECT może odczytać jeden lub więcej rekordów.
- Możesz użyć gwiazdki (*), aby zastąpić inne pola, instrukcja SELECT zwróci wszystkie dane pól tabeli
- Możesz użyć instrukcji WHERE, aby uwzględnić dowolny warunek.
- Możesz określić przesunięcie danych, od którego instrukcja SELECT rozpoczyna zapytanie z opcją OFFSET.Domyślnie przesunięcie wynosi 0.
- Możesz użyć właściwości LIMIT, aby ustawić liczbę zwracanych rekordów.
Uzyskaj dane za pomocą wiersza polecenia
W poniższym przykładzie użyjemy polecenia SQL SELECT, aby uzyskać dane z tabeli danych MySQL chenweiliang_tbl:
Instancja
Poniższy przykład zwróci wszystkie rekordy tabeli danych chenweiliang_tbl:
Przeczytaj arkusz danych:
select * from chenweiliang_tbl;
Użyj skryptu PHP, aby uzyskać dane
Użyj funkcji PHP mysqli_query() i polecenia SQL SELECT , aby pobrać dane.
Funkcja ta służy do wykonywania poleceń SQL, a następnie funkcja PHP mysqli_fetch_array() służy do uzyskiwania dostępu do wszystkich zapytanych danych lub ich wyprowadzania.
Funkcja mysqli_fetch_array() pobiera wiersz z zestawu wyników jako tablicę asocjacyjną, tablicę numeryczną lub obie te tablice, a następnie zwraca tablicę wygenerowaną na podstawie wiersza pobranego z zestawu wyników. Jeśli nie ma więcej wierszy, zwraca wartość false.
Poniższy przykład odczytuje wszystkie rekordy z tabeli danych chenweiliang_tbl.
Instancja
Wypróbuj poniższy przykład, aby wyświetlić wszystkie rekordy tabeli danych chenweiliang_tbl.
Użyj parametru mysqli_fetch_array MYSQL_ASSOC, aby pobrać dane:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>W powyższym przykładzie każdy wiersz odczytanych rekordów jest przypisywany do zmiennej $wiersz, a następnie każda wartość jest wypisywana.
Uwaga: Pamiętaj, aby ująć zmienną w nawiasy klamrowe, jeśli musisz jej użyć w ciągu znaków.
W powyższym przykładzie drugim parametrem funkcji PHP mysqli_fetch_array() jest MYSQL_ASSOC . Ustawienie tego parametru zwraca tablicę asocjacyjną, a nazwę pola można użyć jako indeksu tablicy.
PHP udostępnia inną funkcję, `mysqli_fetch_assoc()` , która pobiera jeden wiersz z zestawu wyników jako tablicę asocjacyjną. Zwraca ona tablicę asocjacyjną na podstawie wierszy pobranych z zestawu wyników; jeśli nie ma więcej wierszy, zwraca wartość false.
Instancja
Wypróbuj poniższy przykład, który wykorzystuje funkcję mysqli_fetch_assoc() do wyświetlenia wszystkich rekordów tabeli chenweiliang_tbl:
Użyj mysqli_fetch_assoc, aby pobrać dane:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_assoc 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_assoc($retval))
{
echo "<tr><td> {$row['chenweiliang_id']}</td> ".
"<td>{$row['chenweiliang_title']} </td> ".
"<td>{$row['chenweiliang_author']} </td> ".
"<td>{$row['submission_date']} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Możesz również użyć stałej MYSQL_NUM jako drugiego parametru funkcji mysqli_fetch_array() PHP, która zwraca tablicę liczb.
Instancja
Poniższy przykład wykorzystuje parametr MYSQL_NUM w celu wyświetlenia wszystkich rekordów w tabeli chenweiliang_tbl:
Użyj parametru mysqli_fetch_array MYSQL_NUM, aby pobrać dane:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
echo "<tr><td> {$row[0]}</td> ".
"<td>{$row[1]} </td> ".
"<td>{$row[2]} </td> ".
"<td>{$row[3]} </td> ".
"</tr>";
}
echo '</table>';
mysqli_close($conn);
?>Wyniki wyjściowe powyższych trzech przykładów są takie same.
uwolnienie pamięci
Dobrą praktyką jest zwolnienie pamięci kursora po wykonaniu instrukcji SELECT.
Pamięć można zwolnić za pomocą funkcji PHP mysqli_free_result().
Poniższy przykład ilustruje użycie tej funkcji.
Instancja
Wypróbuj następujące przykłady:
Wolna pamięć dzięki mysqli_free_result:
<?
php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('连接失败: ' . mysqli_error($conn));
}
// 设置编码,防止中文乱码
mysqli_query($conn , "set names utf8");
$sql = 'SELECT chenweiliang_id, chenweiliang_title,
chenweiliang_author, submission_date
FROM chenweiliang_tbl';
mysqli_select_db( $conn, 'chenweiliang' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('无法读取数据: ' . mysqli_error($conn));
}
echo '<h2>陈沩亮博客 mysqli_fetch_array 测试<h2>';
echo '<table border="1"><tr><td>教程 ID</td><td>标题</td><td>作者</td><td>提交日期</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQL_NUM))
{
echo "<tr><td> {$row[0]}</td> ".
"<td>{$row[1]} </td> ".
"<td>{$row[2]} </td> ".
"<td>{$row[3]} </td> ".
"</tr>";
}
echo '</table>';
// 释放内存
mysqli_free_result($retval);
mysqli_close($conn);
?>Mamy nadzieję, że artykuł „Jak wykonać zapytanie o dane z tabeli w bazie danych MySQL? Polecenia/Instrukcje/Składnia zapytania” udostępniony na blogu Chen Weilianga ( https://www.chenweiliang.com/ ) okaże się dla Ciebie pomocny.
Możesz udostępnić link do tego artykułu: https://www.chenweiliang.com/cwl-461.html
