Artikkelihakemisto
Miten MySQL-tietokannan taulukosta tehdään kysely ? Kyselylauseke/komento/syntaksi
MySQL Kysely tiedot
MySQL-tietokannat käyttävät SQL SELECT -lauseita tietojen kyselyyn.
Voit tiedustella tietokannan tietoja mysql>-komentokehoteikkunan tai PHP-komentosarjan kautta.
kielioppi
Seuraava on yleinen SELECT-syntaksi tietojen kyselyyn MySQL-tietokannassa:
SELECT column_name,column_name FROM table_name [WHERE Clause] [OFFSET M ][LIMIT N]
- Kyselykäskyssä voit käyttää yhtä tai useampaa taulukkoa, erottaa taulukot pilkuilla (,) ja käyttää WHERE-käskyä kyselyn ehtojen asettamiseen.
- SELECT-komento voi lukea yhden tai useamman tietueen.
- Voit käyttää tähteä (*) korvaamaan muut kentät, SELECT-käsky palauttaa kaikki taulukon kenttätiedot
- Voit käyttää WHERE-lausetta sisällyttääksesi minkä tahansa ehdon.
- Voit määrittää datasiirron, jolla SELECT-käsky aloittaa kyselyn OFFSET-komennolla.Oletuksena offset on 0.
- LIMIT-ominaisuuden avulla voit määrittää palautettavien tietueiden määrän.
Hanki tiedot komentokehotteen kautta
Seuraavassa esimerkissä käytämme SQL SELECT -komentoa saadaksemme MySQL-tietotaulukon chenweiliang_tbl tiedot:
Ilmentymä
Seuraava esimerkki palauttaa kaikki tietotaulukon chenweiliang_tbl tietueet:
Lue tietolomake:
select * from chenweiliang_tbl;
Käytä PHP-skriptiä tietojen hankkimiseen
Käytä PHP-funktiota mysqli_query() ja SQL SELECT -komentoa tiedon hakemiseen.
Tätä funktiota käytetään SQL-komentojen suorittamiseen, ja sitten PHP-funktiota mysqli_fetch_array() käytetään kaikkien kyselyssä käytettyjen tietojen käyttämiseen tai tulostamiseen.
mysqli_fetch_array() -funktio hakee tulosjoukosta rivin assosiatiivisena taulukkona, numeerisena taulukkona tai molempina ja palauttaa tulosjoukosta haetusta rivistä luodun taulukon. Jos rivejä ei ole enempää, se palauttaa arvon false.
Seuraava esimerkki lukee kaikki tietueet tietotaulukosta chenweiliang_tbl.
Ilmentymä
Kokeile seuraavaa esimerkkiä näyttääksesi kaikki tietotaulukon chenweiliang_tbl tietueet.
Käytä mysqli_fetch_array MYSQL_ASSOC -parametria tietojen hakemiseen:
<?
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);
?>Yllä olevassa esimerkissä jokainen luettujen tietueiden rivi on liitetty muuttujaan $row, ja sitten jokainen arvo tulostetaan.
Huomautus: Muista laittaa muuttuja aaltosulkeisiin, jos sinun on käytettävä sitä merkkijonossa.
Yllä olevassa esimerkissä PHP:n mysqli_fetch_array()-funktion toinen parametri on MYSQL_ASSOC . Tämän parametrin asettaminen palauttaa assosiatiivisen taulukon, ja voit käyttää kentän nimeä taulukon indeksinä.
PHP tarjoaa toisen funktion, `mysqli_fetch_assoc()` , joka hakee tulosjoukosta yhden rivin assosiatiivisena taulukkona. Se palauttaa assosiatiivisen taulukon tulosjoukosta haettujen rivien perusteella; jos rivejä ei ole enempää saatavilla, se palauttaa arvon false.
Ilmentymä
Kokeile seuraavaa esimerkkiä, jossa mysqli_fetch_assoc() -funktiolla tulostetaan kaikki chenweiliang_tbl-taulukon tietueet:
Käytä mysqli_fetch_assoc tietojen hakemiseen:
<?
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);
?>Voit myös käyttää vakiota MYSQL_NUM toisena parametrina PHP mysqli_fetch_array() -funktiossa, joka palauttaa numerotaulukon.
Ilmentymä
Seuraavassa esimerkissä käytetään MYSQL_NUM- parametria kaikkien chenweiliang_tbl-taulukon tietueiden näyttämiseen:
Käytä mysqli_fetch_array MYSQL_NUM -parametria tietojen hakemiseen:
<?
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);
?>Edellä olevien kolmen esimerkin tulostulokset ovat samat.
muistin vapauttaminen
On hyvä käytäntö vapauttaa kursorin muisti sen jälkeen, kun olemme suorittaneet SELECT-käskyn.
Muisti voidaan vapauttaa PHP-funktiolla mysqli_free_result().
Seuraava esimerkki havainnollistaa tämän toiminnon käyttöä.
Ilmentymä
Kokeile seuraavia esimerkkejä:
Vapaa muisti mysqli_free_resultilla:
<?
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);
?>Toivottavasti Chen Weiliangin blogissa ( https://www.chenweiliang.com/ ) jaetusta artikkelista "Kuinka tehdä kyselyjä MySQL-tietokannan taulukosta? Kyselylauseet/komennot/syntaksi" on sinulle hyötyä.
Voit vapaasti jakaa tämän artikkelin linkin: https://www.chenweiliang.com/cwl-461.html
