Kako MySQL baza podataka postavlja upite podacima u tablici?Izjava upita/naredba/sintaksa

Kako upitati podatke iz tablice u MySQL bazi podataka ? Naredba/izjava/sintaksa upita

MySQL Podaci upita

MySQL baze podataka koriste SQL SELECT naredbe za upit podataka.

Podacima u bazi podataka možete postavljati upite kroz prozor naredbenog retka mysql> ili putem PHP skripte.

gramatika

Slijedi opća SELECT sintaksa za upit podataka u MySQL bazi podataka:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • U izjavi upita možete koristiti jednu ili više tablica, odvojiti tablice zarezima (,) i koristiti izjavu WHERE za postavljanje uvjeta upita.
  • Naredba SELECT može čitati jedan ili više zapisa.
  • Možete koristiti zvjezdicu (*) za zamjenu drugih polja, naredba SELECT vratit će sve podatke polja tablice
  • Možete koristiti naredbu WHERE da uključite bilo koji uvjet.
  • Možete odrediti pomak podataka na kojem SELECT naredba pokreće upit s OFFSET.Prema zadanim postavkama pomak je 0.
  • Svojstvo LIMIT možete koristiti za postavljanje broja vraćenih zapisa.

Dobivanje podataka putem naredbenog retka

U sljedećem primjeru koristit ćemo SQL SELECT naredbu za dobivanje podataka MySQL podatkovne tablice chenweiliang_tbl:

primjer

Sljedeći primjer će vratiti sve zapise podatkovne tablice chenweiliang_tbl:

Pročitajte podatkovnu tablicu:

select * from chenweiliang_tbl;

Koristite PHP skriptu za dobivanje podataka

Za dohvaćanje podataka koristite PHP funkciju mysqli_query() i SQL naredbu SELECT .

Ova funkcija se koristi za izvršavanje SQL naredbi, a zatim se PHP funkcija mysqli_fetch_array() koristi za pristup ili ispis svih upitanih podataka.

Funkcija mysqli_fetch_array() dohvaća redak iz skupa rezultata kao asocijativni niz, numerički niz ili oboje i vraća niz generiran iz retka dohvaćenog iz skupa rezultata. Ako više nema redaka, vraća vrijednost false.

Sljedeći primjer čita sve zapise iz podatkovne tablice chenweiliang_tbl.

primjer

Pokušajte sa sljedećim primjerom prikazati sve zapise podatkovne tablice chenweiliang_tbl.

Koristite mysqli_fetch_array MYSQL_ASSOC parametar za dohvaćanje podataka:

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

 

U gornjem primjeru, svaki redak pročitanih zapisa dodijeljen je varijabli $row, a zatim se svaka vrijednost ispisuje.

Napomena: Ne zaboravite zatvoriti varijablu u vitičaste zagrade ako je trebate koristiti u nizu znakova.

U gornjem primjeru, drugi parametar PHP funkcije mysqli_fetch_array() je MYSQL_ASSOC . Postavljanje ovog parametra vraća asocijativni niz, a naziv polja možete koristiti kao indeks niza.

PHP nudi još jednu funkciju, `mysqli_fetch_assoc()` , koja dohvaća jedan redak iz skupa rezultata kao asocijativni niz. Vraća asocijativni niz na temelju redaka dohvaćenih iz skupa rezultata; ako više nema dostupnih redaka, vraća false.

primjer

Isprobajte sljedeći primjer, koji koristi funkciju mysqli_fetch_assoc() za ispis svih zapisa tablice chenweiliang_tbl:

Koristite mysqli_fetch_assoc za dohvaćanje podataka:

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

Također možete koristiti konstantu MYSQL_NUM kao drugi parametar funkcije PHP mysqli_fetch_array(), koja vraća niz brojeva.

primjer

Sljedeći primjer koristi parametar MYSQL_NUM za prikaz svih zapisa u tablici chenweiliang_tbl:

Koristite mysqli_fetch_array MYSQL_NUM parametar za dohvaćanje podataka:

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

Ishod gornja tri primjera je isti.


oslobađanje memorije

Dobro je osloboditi memoriju kursora nakon što smo izvršili naredbu SELECT.

Memorija se može osloboditi pomoću PHP funkcije mysqli_free_result().

Sljedeći primjer pokazuje korištenje ove funkcije.

primjer

Isprobajte sljedeće primjere:

Oslobodite memoriju pomoću 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);
?>
 

发表 评论

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

Dođite na vrh