Hur frågar MySQL-databas data i en tabell?Fråga uttalande/Kommando/Syntax

Hur man frågar data från en tabell i en MySQL-databas ? Frågesats/kommando/syntax

MySQL Fråga data

MySQL-databaser använder SQL SELECT-satser för att fråga data.

Du kan fråga data i databasen genom mysql> kommandotolksfönstret eller genom ett PHP-skript.

grammatik

Följande är den allmänna SELECT-syntaxen för att söka efter data i en MySQL-databas:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • I frågesatsen kan du använda en eller flera tabeller, separera tabellerna med kommatecken (,) och använda WHERE-satsen för att ställa in frågevillkor.
  • Kommandot SELECT kan läsa en eller flera poster.
  • Du kan använda en asterisk (*) för att ersätta andra fält, SELECT-satsen returnerar all fältdata i tabellen
  • Du kan använda WHERE-satsen för att inkludera alla villkor.
  • Du kan ange den dataoffset vid vilken SELECT-satsen startar frågan med OFFSET.Som standard är offset 0.
  • Du kan använda egenskapen LIMIT för att ställa in antalet poster som returneras.

Hämta data via kommandotolken

I följande exempel kommer vi att använda kommandot SQL SELECT för att hämta data från MySQL-datatabellen chenweiliang_tbl:

exempel

Följande exempel kommer att returnera alla poster i datatabellen chenweiliang_tbl:

Läs databladet:

select * from chenweiliang_tbl;

Använd PHP-skript för att hämta data

Använd PHP-funktionen mysqli_query() och SQL SELECT -kommandot för att hämta data.

Den här funktionen används för att köra SQL-kommandon, och sedan används PHP-funktionen mysqli_fetch_array() för att komma åt eller mata ut all efterfrågad data.

Funktionen mysqli_fetch_array() hämtar en rad från resultatmängden som en associativ array, en numerisk array eller båda, och returnerar en array genererad från raden som hämtats från resultatmängden. Om det inte finns fler rader returnerar den falskt.

Följande exempel läser alla poster från datatabellen chenweiliang_tbl.

exempel

Försök med följande exempel för att visa alla poster i datatabellen chenweiliang_tbl.

Använd parametern mysqli_fetch_array MYSQL_ASSOC för att hämta 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 exemplet ovan tilldelas varje rad med läser poster till variabeln $row, och sedan skrivs varje värde ut.

Obs: Kom ihåg att omge variabeln med klammerparenteser om du behöver använda den i en sträng.

I exemplet ovan är den andra parametern i PHP-funktionen mysqli_fetch_array() MYSQL_ASSOC . Om du ställer in den här parametern returneras en associativ array, och du kan använda fältnamnet som index för arrayen.

PHP tillhandahåller en annan funktion, `mysqli_fetch_assoc()` , som hämtar en rad från resultatmängden som en associativ array. Den returnerar en associativ array baserad på raderna som hämtats från resultatmängden; om inga fler rader är tillgängliga returnerar den falskt.

exempel

Prova följande exempel, som använder funktionen mysqli_fetch_assoc() för att mata ut alla poster i tabellen chenweiliang_tbl:

Använd mysqli_fetch_assoc för att hämta 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 också använda konstanten MYSQL_NUM som den andra parametern i PHP-funktionen mysqli_fetch_array(), som returnerar en array med tal.

exempel

Följande exempel använder parametern MYSQL_NUM för att visa alla poster i tabellen chenweiliang_tbl:

Använd parametern mysqli_fetch_array MYSQL_NUM för att hämta 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);
?>

Resultaten för de tre ovanstående exemplen är desamma.


minnessläpp

Det är en bra praxis att frigöra markörminne efter att vi har kört en SELECT-sats.

Minnet kan frigöras genom PHP-funktionen mysqli_free_result().

Följande exempel visar användningen av denna funktion.

exempel

Prova följande exempel:

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

发表 评论

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

Bläddra till början