Каталог статей
Як запитувати дані з таблиці в базі даних MySQL ? Оператор/команда/синтаксис запиту
MySQL Дані запиту
Бази даних MySQL використовують оператори SQL SELECT для запиту даних.
Ви можете запитувати дані в базі даних через вікно командного рядка mysql> або через сценарій PHP.
граматика
Нижче наведено загальний синтаксис SELECT для запиту даних у базі даних MySQL:
SELECT column_name,column_name FROM table_name [WHERE Clause] [OFFSET M ][LIMIT N]
- У операторі запиту можна використовувати одну або кілька таблиць, розділяючи таблиці комами (,), і використовувати оператор WHERE для встановлення умов запиту.
- Команда SELECT може читати один або декілька записів.
- Ви можете використовувати зірочку (*), щоб замінити інші поля, оператор SELECT поверне всі дані полів таблиці
- Ви можете використовувати оператор WHERE, щоб включити будь-яку умову.
- Ви можете вказати зміщення даних, за якого оператор SELECT починає запит, за допомогою OFFSET.За замовчуванням зміщення дорівнює 0.
- Ви можете використовувати властивість LIMIT, щоб установити кількість повернутих записів.
Отримати дані через командний рядок
У наступному прикладі ми використаємо команду SQL SELECT для отримання даних таблиці даних MySQL chenweiliang_tbl:
Екземпляр
Наступний приклад поверне всі записи таблиці даних chenweiliang_tbl:
Прочитайте таблицю даних:
select * from chenweiliang_tbl;
Використовуйте скрипт PHP для отримання даних
Використовуйте функцію PHP mysqli_query() та команду SQL SELECT для отримання даних.
Ця функція використовується для виконання SQL-команд, а потім функція PHP mysqli_fetch_array() використовується для доступу або виведення всіх запитуваних даних.
Функція mysqli_fetch_array() отримує рядок з результуючого набору у вигляді асоціативного масиву, числового масиву або обох, і повертає масив, згенерований з рядка, отриманого з результуючого набору. Якщо рядків більше немає, вона повертає значення false.
У наступному прикладі читаються всі записи з таблиці даних chenweiliang_tbl.
Екземпляр
Спробуйте наступний приклад, щоб відобразити всі записи таблиці даних chenweiliang_tbl.
Використовуйте параметр mysqli_fetch_array MYSQL_ASSOC для отримання даних:
<?
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);
?>У наведеному вище прикладі кожен прочитаний рядок записів присвоюється змінній $row, а потім кожне значення виводиться на друк.
Примітка: Не забудьте взяти змінну у фігурні дужки, якщо вам потрібно використовувати її в рядку.
У наведеному вище прикладі другим параметром функції PHP mysqli_fetch_array() є MYSQL_ASSOC . Встановлення цього параметра повертає асоціативний масив, і ви можете використовувати назву поля як індекс масиву.
PHP надає ще одну функцію, `mysqli_fetch_assoc()` , яка отримує один рядок з результуючого набору як асоціативний масив. Вона повертає асоціативний масив на основі рядків, отриманих з результуючого набору; якщо більше немає доступних рядків, вона повертає false.
Екземпляр
Спробуйте наступний приклад, у якому використовується функція mysqli_fetch_assoc() для виведення всіх записів таблиці chenweiliang_tbl:
Використовуйте mysqli_fetch_assoc для отримання даних:
<?
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);
?>Ви також можете використовувати константу MYSQL_NUM як другий параметр функції PHP mysqli_fetch_array(), яка повертає масив чисел.
Екземпляр
У наступному прикладі параметр MYSQL_NUM використовується для відображення всіх записів у таблиці chenweiliang_tbl:
Використовуйте параметр mysqli_fetch_array MYSQL_NUM для отримання даних:
<?
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);
?>Вихідні результати трьох наведених вище прикладів однакові.
звільнення пам'яті
Рекомендується звільнити пам’ять курсора після того, як ми виконали оператор SELECT.
Пам'ять можна звільнити за допомогою функції PHP mysqli_free_result().
Наступний приклад демонструє використання цієї функції.
Екземпляр
Спробуйте такі приклади:
Звільнення пам'яті за допомогою 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);
?>Сподіваюся, стаття «Як запитувати дані з таблиці в базі даних MySQL? Оператори/Команди запитів/Синтаксис», опублікована в блозі Ченя Вейляна ( https://www.chenweiliang.com/ ), буде вам корисною.
Не соромтеся поділитися посиланням на цю статтю: https://www.chenweiliang.com/cwl-461.html
