Каталог статей
Как выполнить запрос к таблице в базе данных 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 запускает запрос со смещением.По умолчанию смещение равно 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
