Ki jan baz done MySQL rechèch done nan yon tab?Rekèt Deklarasyon / Kòmand / Sentaks

Kijan pou fè yon rechèch sou done ki soti nan yon tab nan yon baz done MySQL ? Deklarasyon/kòmand/sentaks rechèch

Miskl Rechèch done

Baz done MySQL itilize deklarasyon SQL SELECT pou rechèch done yo.

Ou ka mande done nan baz done a atravè fenèt la èd memwa mysql>, oswa atravè yon script PHP.

gramè

Sa ki anba la a se sentaks jeneral SELECT pou demann done nan yon baz done MySQL:

SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[OFFSET M ][LIMIT N]
  • Nan deklarasyon rechèch la, ou ka itilize youn oswa plis tab, separe tab yo ak vigil (,), epi sèvi ak deklarasyon WHERE pou mete kondisyon rechèch.
  • Kòmand SELECT a ka li youn oswa plis dosye.
  • Ou ka itilize yon asterisk (*) pou ranplase lòt jaden, deklarasyon SELECT a pral retounen tout done jaden nan tablo a
  • Ou ka itilize deklarasyon WHERE pou mete nenpòt kondisyon.
  • Ou ka presize done konpanse nan ki deklarasyon an SELECT kòmanse rechèch la ak OFFSET.Pa default konpanse a se 0.
  • Ou ka itilize pwopriyete LIMIT pou mete kantite dosye yo retounen.

Jwenn done atravè èd memwa lòd

Nan egzanp sa a, nou pral sèvi ak lòd SQL SELECT pou jwenn done ki nan tablo done MySQL chenweiliang_tbl:

Enstans

Egzanp sa a pral retounen tout dosye done tab chenweiliang_tbl:

Li fichye done a:

select * from chenweiliang_tbl;

Sèvi ak PHP script pou jwenn done

Sèvi ak fonksyon PHP mysqli_query() la ak kòmandman SQL SELECT la pou rekipere done yo.

Fonksyon sa a itilize pou egzekite kòmand SQL, epi answit fonksyon PHP mysqli_fetch_array() la itilize pou jwenn aksè oswa pou montre tout done yo mande a.

Fonksyon mysqli_fetch_array() la rekipere yon ranje nan seri rezilta a kòm yon tablo asosyatif, yon tablo nimerik, oubyen toude, epi li retounen yon tablo ki pwodui apati ranje ki rekipere nan seri rezilta a. Si pa gen plis ranje, li retounen fo.

Egzanp sa a li tout dosye ki soti nan tab done chenweiliang_tbl.

Enstans

Eseye egzanp sa a pou montre tout dosye done tab chenweiliang_tbl.

Sèvi ak paramèt mysqli_fetch_array MYSQL_ASSOC pou chèche done:

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

 

Nan egzanp ki anwo a, chak ranje dosye li yo asiyen nan varyab $ ranje a, epi answit chak valè yo enprime.

Nòt: Sonje mete varyab la nan akolad si ou bezwen itilize li nan yon chèn karaktè.

Nan egzanp ki anwo a, dezyèm paramèt fonksyon PHP mysqli_fetch_array() la se MYSQL_ASSOC . Lè ou mete paramèt sa a, ou retounen yon tablo asosyatif, epi ou ka itilize non chan an kòm endèks tablo a.

PHP bay yon lòt fonksyon, `mysqli_fetch_assoc()` , ki rekipere yon ranje nan seri rezilta a kòm yon tablo asosyatif. Li retounen yon tablo asosyatif ki baze sou ranje yo rekipere nan seri rezilta a; si pa gen plis ranje ki disponib, li retounen fo.

Enstans

Eseye egzanp sa a, ki itilize fonksyon mysqli_fetch_assoc() la pou montre tout anrejistreman nan tablo chenweiliang_tbl la:

Sèvi ak mysqli_fetch_assoc pou chèche done:

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

Ou kapab tou itilize konstan MYSQL_NUM la kòm dezyèm paramèt PHP mysqli_fetch_array() fonksyon, ki retounen yon seri nimewo.

Enstans

Egzanp sa a itilize paramèt MYSQL_NUM pou montre tout anrejistreman ki nan tablo chenweiliang_tbl la:

Sèvi ak paramèt mysqli_fetch_array MYSQL_NUM la pou chèche done:

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

Rezilta pwodiksyon twa egzanp ki anwo yo se menm bagay la.


lage memwa

Li se yon bon pratik pou libere memwa kurseur apre nou fin egzekite yon deklarasyon SELECT.

Ou ka lage memwa a atravè fonksyon PHP mysqli_free_result().

Egzanp sa a montre itilizasyon fonksyon sa a.

Enstans

Eseye egzanp sa yo:

Gratis memwa ak 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);
?>
 

kòmantè

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

Ki gen tèt