ไดเรกทอรีบทความ
วิธีการเรียกดูข้อมูลจากตารางใน ฐานข้อมูล MySQL ? คำสั่ง/ไวยากรณ์การเรียกดูข้อมูล
MySQL สอบถามข้อมูล
ฐานข้อมูล MySQL ใช้คำสั่ง SQL SELECT เพื่อสืบค้นข้อมูล
คุณสามารถสืบค้นข้อมูลในฐานข้อมูลผ่านหน้าต่างพรอมต์คำสั่ง mysql> หรือผ่านสคริปต์ PHP
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์ SELECT ทั่วไปสำหรับการสืบค้นข้อมูลในฐานข้อมูล MySQL:
SELECT column_name,column_name FROM table_name [WHERE Clause] [OFFSET M ][LIMIT N]
- ในคำสั่งแบบสอบถาม คุณสามารถใช้อย่างน้อยหนึ่งตาราง แยกตารางด้วยเครื่องหมายจุลภาค (,) และใช้คำสั่ง WHERE เพื่อตั้งค่าเงื่อนไขคิวรี
- คำสั่ง SELECT สามารถอ่านระเบียนได้ตั้งแต่หนึ่งรายการขึ้นไป
- คุณสามารถใช้เครื่องหมายดอกจัน (*) เพื่อแทนที่ฟิลด์อื่น คำสั่ง SELECT จะส่งคืนข้อมูลฟิลด์ทั้งหมดของตาราง
- คุณสามารถใช้คำสั่ง WHERE เพื่อรวมเงื่อนไขใดก็ได้
- คุณสามารถระบุออฟเซ็ตข้อมูลที่คำสั่ง SELECT เริ่มการสืบค้นด้วย OFFSETโดยค่าเริ่มต้น ออฟเซ็ตคือ 0
- คุณสามารถใช้คุณสมบัติ LIMIT เพื่อกำหนดจำนวนเร็กคอร์ดที่ส่งคืน
รับข้อมูลผ่านพรอมต์คำสั่ง
ในตัวอย่างต่อไปนี้ เราจะใช้คำสั่ง SQL SELECT เพื่อรับข้อมูลของตารางข้อมูล MySQL chenweiliang_tbl:
ตัวอย่าง
ตัวอย่างต่อไปนี้จะคืนค่าระเบียนทั้งหมดของตารางข้อมูล chenweiliang_tbl:
อ่านแผ่นข้อมูล:
select * from chenweiliang_tbl;
ใช้สคริปต์ PHP เพื่อรับข้อมูล
ใช้ฟังก์ชันmysqli_query() ของ PHP และ คำสั่ง SELECT ของ SQLเพื่อดึงข้อมูล
ฟังก์ชันนี้ใช้สำหรับเรียกใช้คำสั่ง SQL จากนั้นจะใช้ฟังก์ชัน PHP mysqli_fetch_array()เพื่อเข้าถึงหรือแสดงผลข้อมูลทั้งหมดที่ถูกเรียกใช้
ฟังก์ชัน mysqli_fetch_array()จะดึงข้อมูลแถวจากชุดผลลัพธ์ในรูปแบบอาร์เรย์แบบเชื่อมโยง อาร์เรย์ตัวเลข หรือทั้งสองอย่าง และส่งคืนอาร์เรย์ที่สร้างจากแถวที่ดึงมาจากชุดผลลัพธ์ หากไม่มีแถวเหลืออยู่แล้ว ฟังก์ชันจะส่งคืนค่า false
ตัวอย่างต่อไปนี้จะอ่านระเบียนทั้งหมดจากตารางข้อมูล chenweiliang_tbl
ตัวอย่าง
ลองตัวอย่างต่อไปนี้เพื่อแสดงระเบียนทั้งหมดของตารางข้อมูล chenweiliang_tbl
ใช้พารามิเตอร์ mysqli_fetch_array MYSQL_ASSOC เพื่อดึงข้อมูล:
<?
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);
?>ในตัวอย่างข้างต้น แต่ละแถวของระเบียนที่อ่านถูกกำหนดให้กับตัวแปร $row แล้วแต่ละค่าจะถูกพิมพ์ออกมา
หมายเหตุ:อย่าลืมใส่เครื่องหมายวงเล็บปีกกาครอบตัวแปรหากต้องการใช้ในสตริง
ในตัวอย่างข้างต้น พารามิเตอร์ตัวที่สองของฟังก์ชัน PHP mysqli_fetch_array() คือMYSQL_ASSOCการตั้งค่าพารามิเตอร์นี้จะส่งคืนอาร์เรย์แบบเชื่อมโยง และคุณสามารถใช้ชื่อฟิลด์เป็นดัชนีของอาร์เรย์ได้
PHP มีฟังก์ชันอีกตัวหนึ่งคือ`mysqli_fetch_assoc()`ซึ่งดึงข้อมูลหนึ่งแถวจากชุดผลลัพธ์มาเก็บไว้ในรูปแบบอาร์เรย์แบบเชื่อมโยง ฟังก์ชันนี้จะส่งคืนอาร์เรย์แบบเชื่อมโยงตามแถวที่ดึงมาจากชุดผลลัพธ์ หากไม่มีแถวเพิ่มเติมแล้ว ฟังก์ชันจะส่งคืนค่า false
ตัวอย่าง
ลองดูตัวอย่างต่อไปนี้ ซึ่งใช้ ฟังก์ชัน mysqli_fetch_assoc()เพื่อแสดงผลข้อมูลทั้งหมดในตาราง chenweiliang_tbl:
ใช้ mysqli_fetch_assoc เพื่อดึงข้อมูล:
<?
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);
?>คุณยังสามารถใช้ค่าคงที่ MYSQL_NUM เป็นพารามิเตอร์ที่สองของฟังก์ชัน PHP mysqli_fetch_array() ซึ่งจะคืนค่าอาร์เรย์ของตัวเลข
ตัวอย่าง
ตัวอย่างต่อไปนี้ใช้ พารามิเตอร์ MYSQL_NUMเพื่อแสดงข้อมูลทั้งหมดในตาราง chenweiliang_tbl:
ใช้พารามิเตอร์ mysqli_fetch_array MYSQL_NUM เพื่อดึงข้อมูล:
<?
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);
?>ผลลัพธ์ของตัวอย่างสามตัวอย่างข้างต้นจะเหมือนกัน
ปล่อยหน่วยความจำ
แนวทางปฏิบัติที่ดีในการเพิ่มหน่วยความจำเคอร์เซอร์ให้ว่างหลังจากที่เราดำเนินการคำสั่ง SELECT
หน่วยความจำสามารถปล่อยผ่านฟังก์ชัน PHP mysqli_free_result()
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการใช้ฟังก์ชันนี้
ตัวอย่าง
ลองตัวอย่างต่อไปนี้:
หน่วยความจำว่างด้วย 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);
?>หวังว่า บทความ "วิธีการสืบค้นข้อมูลจากตารางในฐานข้อมูล MySQL: คำสั่ง/ไวยากรณ์การสืบค้น" ที่แชร์บนบล็อกของ Chen Weiliang ( https://www.chenweiliang.com/ ) จะเป็นประโยชน์กับคุณ
โปรดแชร์ลิงก์บทความนี้ได้ตามสบาย: https://www.chenweiliang.com/cwl-461.html
