Straipsnių katalogas
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);
?>Tikiuosi, kad straipsnis „Kaip pateikti duomenų užklausas iš lentelės MySQL duomenų bazėje? Užklausų sakiniai / komandos / sintaksė“, kuriuo pasidalinta Chen Weiliang tinklaraštyje ( https://www.chenweiliang.com/ ), jums bus naudingas.
Nedvejodami pasidalinkite šio straipsnio nuoroda: https://www.chenweiliang.com/cwl-461.html
