W jaki sposób baza danych MySQL odpytuje dane w tabeli?Instrukcja zapytania/polecenie/składnia

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

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Przewiń do góry