სტატიების დირექტორია
როგორ მოვითხოვოთ მონაცემები 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 სკრიპტი მონაცემების მისაღებად
მონაცემების მისაღებად გამოიყენეთ PHP ფუნქცია mysqli_query() და SQL SELECT ბრძანება.
ეს ფუნქცია გამოიყენება 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);
?>იმედია, ჩენ ვეილიანგის ბლოგზე ( https://www.chenweiliang.com/ ) გამოქვეყნებული სტატია „როგორ მოვიძიოთ მონაცემები MySQL მონაცემთა ბაზის ცხრილიდან? მოთხოვნის ოპერატორები/ბრძანებები/სინტაქსი“ თქვენთვის სასარგებლო იქნება.
თავისუფლად გაგვიზიარეთ ამ სტატიის ბმული: https://www.chenweiliang.com/cwl-461.html
