Справочник на статиите
Как да заявя данни от таблица в 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 и след това всяка стойност се отпечатва.
Забележка: Не забравяйте да затворите променливата в къдрави скоби, ако трябва да я използвате в низ.
В горния пример, вторият параметър на функцията mysqli_fetch_array() в PHP е 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
