Kaip „MySQL“ duomenų bazė pateikia duomenų užklausą lentelėje?Užklausos pareiškimas / komanda / sintaksė

Kaip pateikti duomenų užklausą iš lentelės MySQL duomenų bazėje ? Užklausos sakinys/komanda/sintaksė

MySQL Duomenų užklausa

„MySQL“ duomenų bazės naudoja SQL SELECT teiginius duomenų užklausai.

Duomenų bazėje galite pateikti užklausą per mysql> komandų eilutės langą arba per PHP scenarijų.

gramatika

Toliau pateikiama bendra SELECT sintaksė, skirta duomenų užklausai MySQL duomenų bazėje:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • Užklausos sakinyje galite naudoti vieną ar daugiau lentelių, atskirti lenteles kableliais (,) ir naudoti WHERE teiginį užklausos sąlygoms nustatyti.
  • Komanda SELECT gali nuskaityti vieną ar daugiau įrašų.
  • Galite naudoti žvaigždutę (*), kad pakeistumėte kitus laukus, SELECT sakinys pateiks visus lentelės lauko duomenis
  • Galite naudoti WHERE teiginį, kad įtrauktumėte bet kokią sąlygą.
  • Galite nurodyti duomenų poslinkį, kuriuo SELECT sakinys pradeda užklausą su OFFSET.Pagal numatytuosius nustatymus poslinkis yra 0.
  • Norėdami nustatyti grąžinamų įrašų skaičių, galite naudoti ypatybę LIMIT.

Gaukite duomenis naudodami komandų eilutę

Šiame pavyzdyje naudosime komandą SQL SELECT, kad gautume MySQL duomenų lentelės chenweiliang_tbl duomenis:

pavyzdys

Šis pavyzdys pateiks visus duomenų lentelės chenweiliang_tbl įrašus:

Skaitykite duomenų lapą:

select * from chenweiliang_tbl;

Duomenims gauti naudokite PHP scenarijų

Duomenims gauti naudokite PHP funkciją mysqli_query() ir SQL komandą SELECT .

Ši funkcija naudojama SQL komandoms vykdyti, o tada PHP funkcija mysqli_fetch_array() naudojama visiems užklaustiems duomenims pasiekti arba išvesti.

Funkcija mysqli_fetch_array() iš rezultatų rinkinio išgauna eilutę kaip asociatyvųjį masyvą, skaitinį masyvą arba abu ir grąžina masyvą, sugeneruotą iš rezultatų rinkinio gautos eilutės. Jei eilučių nebėra, ji grąžina „false“.

Šis pavyzdys nuskaito visus įrašus iš duomenų lentelės chenweiliang_tbl.

pavyzdys

Išbandykite šį pavyzdį, kad būtų rodomi visi duomenų lentelės chenweiliang_tbl įrašai.

Norėdami gauti duomenis, naudokite parametrą 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);
?>

 

Aukščiau pateiktame pavyzdyje kiekviena perskaitytų įrašų eilutė priskiriama kintamajam $row, tada kiekviena reikšmė išspausdinama.

Pastaba: jei reikia naudoti kintamąjį eilutėje, nepamirškite jį įtraukti į riestinius skliaustus.

Aukščiau pateiktame pavyzdyje antrasis PHP mysqli_fetch_array() funkcijos parametras yra MYSQL_ASSOC . Nustačius šį parametrą, grąžinamas asociatyvusis masyvas, kurio indeksą galite naudoti lauko pavadinimą.

PHP pateikia dar vieną funkciją „mysqli_fetch_assoc()“ , kuri iš rezultatų rinkinio nuskaito vieną eilutę kaip asociatyvų masyvą. Ji grąžina asociatyvų masyvą, pagrįstą iš rezultatų rinkinio gautomis eilutėmis; jei daugiau eilučių nebėra, grąžina „false“.

pavyzdys

Išbandykite šį pavyzdį, kuriame funkcija „ mysqli_fetch_assoc()“ išveda visus „chenweiliang_tbl“ lentelės įrašus:

Duomenims gauti naudokite 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);
?>

Taip pat galite naudoti konstantą MYSQL_NUM kaip antrąjį PHP mysqli_fetch_array() funkcijos parametrą, kuris grąžina skaičių masyvą.

pavyzdys

Šiame pavyzdyje naudojamas MYSQL_NUM parametras, kad būtų rodomi visi lentelės chenweiliang_tbl įrašai:

Norėdami gauti duomenis, naudokite parametrą 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);
?>

Pirmiau minėtų trijų pavyzdžių išvesties rezultatai yra tokie patys.


atminties išlaisvinimas

Tai gera praktika atlaisvinti žymeklio atmintį, kai įvykdome SELECT sakinį.

Atmintį galima atlaisvinti naudojant PHP funkciją mysqli_free_result().

Toliau pateiktame pavyzdyje parodytas šios funkcijos naudojimas.

pavyzdys

Išbandykite šiuos pavyzdžius:

Laisva atmintis su 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);
?>
 

发表 评论

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

Pereikite į viršų