Hvordan spør MySQL-databasen data i en tabell?Spørringserklæring/Kommando/Syntaks

Hvordan spørre data fra en tabell i en MySQL-database ? Spørresetning/kommando/syntaks

MySQL Spør data

MySQL-databaser bruker SQL SELECT-setninger for å søke etter data.

Du kan søke etter data i databasen gjennom mysql> ledetekstvinduet, eller gjennom et PHP-skript.

grammatikk

Følgende er den generelle SELECT-syntaksen for å spørre etter data i en MySQL-database:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • I spørringssetningen kan du bruke én eller flere tabeller, skille tabellene med komma (,), og bruke WHERE-setningen til å angi spørringsbetingelser.
  • SELECT-kommandoen kan lese en eller flere poster.
  • Du kan bruke en stjerne (*) for å erstatte andre felt, SELECT-setningen vil returnere alle feltdata i tabellen
  • Du kan bruke WHERE-setningen til å inkludere en hvilken som helst betingelse.
  • Du kan spesifisere dataforskyvningen der SELECT-setningen starter spørringen med OFFSET.Som standard er forskyvningen 0.
  • Du kan bruke LIMIT-egenskapen til å angi antall poster som returneres.

Få data via ledeteksten

I følgende eksempel vil vi bruke SQL SELECT-kommandoen for å hente dataene til MySQL-datatabellen chenweiliang_tbl:

Forekomst

Følgende eksempel vil returnere alle poster i datatabellen chenweiliang_tbl:

Les databladet:

select * from chenweiliang_tbl;

Bruk PHP-skript for å få data

Bruk PHP-funksjonen mysqli_query() og SQL SELECT- kommandoen for å hente data.

Denne funksjonen brukes til å utføre SQL-kommandoer, og deretter brukes PHP-funksjonen mysqli_fetch_array() til å få tilgang til eller sende ut alle dataene som er forespurt.

Funksjonen mysqli_fetch_array() henter en rad fra resultatsettet som en assosiativ matrise, en numerisk matrise eller begge deler, og returnerer en matrise generert fra raden hentet fra resultatsettet. Hvis det ikke er flere rader, returnerer den usann.

Følgende eksempel leser alle poster fra datatabellen chenweiliang_tbl.

Forekomst

Prøv følgende eksempel for å vise alle postene i datatabellen chenweiliang_tbl.

Bruk parameteren mysqli_fetch_array MYSQL_ASSOC for å hente data:

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

 

I eksemplet ovenfor tildeles hver rad med leste poster til variabelen $row, og deretter skrives hver verdi ut.

Merk: Husk å sette variabelen i krøllparenteser hvis du trenger å bruke den i en streng.

I eksemplet ovenfor er den andre parameteren i PHP mysqli_fetch_array()-funksjonen MYSQL_ASSOC . Hvis du angir denne parameteren, returneres en assosiativ array, og du kan bruke feltnavnet som indeks for arrayet.

PHP tilbyr en annen funksjon, `mysqli_fetch_assoc()` , som henter én rad fra resultatsettet som en assosiativ array. Den returnerer en assosiativ array basert på radene hentet fra resultatsettet; hvis ingen flere rader er tilgjengelige, returnerer den usann.

Forekomst

Prøv følgende eksempel, som bruker mysqli_fetch_assoc() -funksjonen til å sende ut alle poster i tabellen chenweiliang_tbl:

Bruk mysqli_fetch_assoc for å hente data:

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

Du kan også bruke konstanten MYSQL_NUM som den andre parameteren i PHP-funksjonen mysqli_fetch_array(), som returnerer en rekke tall.

Forekomst

Følgende eksempel bruker MYSQL_NUM- parameteren til å vise alle poster i tabellen chenweiliang_tbl:

Bruk parameteren mysqli_fetch_array MYSQL_NUM for å hente data:

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

Utdataresultatene fra de tre eksemplene ovenfor er de samme.


minneutgivelse

Det er en god praksis å frigjøre markørminne etter at vi har utført en SELECT-setning.

Minnet kan frigjøres gjennom PHP-funksjonen mysqli_free_result().

Følgende eksempel viser bruken av denne funksjonen.

Forekomst

Prøv følgende eksempler:

Frigjør minne med 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);
?>
 

发表 评论

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

Rull til toppen