Imenik članaka
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);
?>Nadam se da će vam članak "Kako upitati podatke iz tablice u MySQL bazi podataka? Izjave/Naredbe/Sintaksa upita" podijeljen na Chen Weiliangovom blogu ( https://www.chenweiliang.com/ ) biti koristan.
Slobodno podijelite poveznicu na ovaj članak: https://www.chenweiliang.com/cwl-461.html
