Miten MySQL-tietokanta kyselee taulukon tietoja?Kyselylause/komento/syntaksi

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);
?>
 

发表 评论

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

Siirry alkuun