Πώς ερωτά τα δεδομένα της βάσης δεδομένων MySQL σε έναν πίνακα;Δήλωση ερωτήματος/Εντολή/Σύνταξη

Πώς να υποβάλετε ερώτημα σε δεδομένα από έναν πίνακα σε μια βάση δεδομένων 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 και, στη συνέχεια, εκτυπώνεται κάθε τιμή.

Σημείωση: Θυμηθείτε να περικλείσετε τη μεταβλητή σε αγκύλες εάν χρειάζεται να τη χρησιμοποιήσετε σε μια συμβολοσειρά.

Στο παραπάνω παράδειγμα, η δεύτερη παράμετρος της συνάρτησης mysqli_fetch_array() στην PHP είναι η 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

Για να ξεκλειδώσετε περισσότερα κρυμμένα κόλπα🔑, καλώς ήρθατε στο κανάλι μας στο Telegram!

Κάντε share και like αν σας αρέσει! Τα share και τα likes σας είναι το συνεχές μας κίνητρο!

 

发表 评论

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

Μεταβείτε στην κορυφή