Data pertanyaan MySQL
Data pertanyaan MySQL
Pangkalan data MySQL menggunakan pernyataan SQL SELECT untuk membuat pertanyaan data.
Anda boleh bertanya data dalam pangkalan data melalui tetingkap gesaan arahan mysql> atau data pertanyaan melalui skrip PHP.
Syntax
Berikut ialah sintaks SELECT biasa untuk pertanyaan data dalam pangkalan data MySQL:
SELECT column_name,column_name FROM table_name[WHERE Clause][LIMIT N][ OFFSET M]
Dalam pertanyaan kenyataan, anda boleh Gunakan satu atau lebih jadual, pisahkan dengan koma (,) dan gunakan pernyataan WHERE untuk menetapkan syarat pertanyaan.
Arahan SELECT boleh membaca satu atau lebih rekod.
Anda boleh menggunakan asterisk (*) untuk menggantikan medan lain Pernyataan SELECT akan mengembalikan semua data medan dalam jadual
Anda boleh gunakan pernyataan WHERE untuk mengandungi sebarang syarat.
Anda boleh menggunakan atribut LIMIT untuk menetapkan bilangan rekod yang dikembalikan.
Anda boleh menggunakan OFFSET untuk menentukan offset data di mana pernyataan SELECT mula membuat pertanyaan. Secara lalai offset ialah 0.
Dapatkan data melalui command prompt
Dalam contoh berikut kita akan mendapat MySQL melalui arahan SQL SELECT Data pengguna jadual data:
Instance
Contoh berikut akan mengembalikan semua rekod pengguna jadual data:
Baca jadual data :
select * from user;
Gunakan skrip PHP untuk mendapatkan data
Gunakan fungsi PHP mysqli_query() dan perintah SQL SELECT untuk mendapatkan data.
Fungsi ini digunakan untuk melaksanakan perintah SQL, dan kemudian menggunakan atau mengeluarkan semua data pertanyaan melalui fungsi PHP mysqli_fetch_array().
Fungsi mysqli_fetch_array() mengambil baris daripada set hasil sebagai tatasusunan bersekutu, tatasusunan angka atau kedua-duanya Mengembalikan tatasusunan berdasarkan baris yang diambil daripada set hasil, atau palsu jika tiada lagi barisan.
Contoh berikut membaca semua rekod daripada pengguna jadual data.
Contoh
Cuba contoh berikut untuk memaparkan semua rekod pengguna jadual data.
header("Content-Type: text/html;charset=utf-8");
$dbhost = 'localhost'; // hos pelayan mysql Alamat
$dbuser = 'root'; // nama pengguna mysql
$dbpass = 'root';
jika(! $conn )
{
mati('Sambungan gagal: ' .mysqli_error ($conn));
}
// Tetapkan pengekodan untuk mengelakkan aksara Cina bercelaru
mysqli_query ($conn , "set names utf8");
$sql = 'SELECT user_id, tajuk_pengguna,
pengarang_pengguna, tarikh_serahan
DARIPADA pengguna';
mysqli_select_db( $con n, 'DEMO' );
$retval = mysqli_query( $conn, $sql );
if(! $retval )
{
die('Tidak dapat membaca data: ' . mysqli_error($conn ));
}
echo '<h2>Laman web PHP Cina mysqli_fetch_array test<h2> ;';
gema '<table border="1"><tr><td>ID Tutorial</td><td>Tajuk</td><td>Pengarang</td> <td>Tarikh Penyerahan</td></tr>';
while($ row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
{
echo "<tr> {$row['user_id']}</td> ".
"<td> ;{$row['user_title']} </td> ".
" "<td>{ $row['user_author']} </td> ".
" "<td>{ $row['submission_date']} </td> ".
"</tr>" ;
}
gema '</table>';
mysqli_close($conn) ;
?>
Dalam contoh di atas, setiap baris rekod yang dibaca diberikan kepada pembolehubah $row, dan kemudian setiap nilai dicetak.
Nota: Ingat jika anda perlu menggunakan pembolehubah dalam rentetan, letakkan pembolehubah dalam pendakap kerinting.
Dalam contoh di atas, parameter kedua fungsi PHP mysqli_fetch_array() ialah MYSQLI_ASSOC. Tetapkan parameter ini untuk menanyakan hasil dan mengembalikan tatasusunan bersekutu Anda boleh menggunakan nama medan sebagai indeks tatasusunan.
PHP menyediakan satu lagi fungsi mysqli_fetch_assoc(), yang mengambil satu baris daripada set hasil sebagai tatasusunan bersekutu. Mengembalikan tatasusunan bersekutu berdasarkan baris yang diambil daripada set hasil, atau palsu jika tiada lagi baris.
Contoh
Cuba contoh berikut, yang menggunakan fungsi mysqli_fetch_assoc() untuk mengeluarkan semua rekod pengguna jadual data:
<?php
header("Content-Type: text/html;charset=utf-8");
$dbhost = 'localhost'; // hos pelayan mysql Alamat
$dbuser = 'root'; // nama pengguna mysql
$dbpass = 'root';
jika(! $conn )
{
mati('Sambungan gagal: ' .mysqli_error ($conn));
}
// Tetapkan pengekodan untuk mengelakkan aksara Cina bercelaru
mysqli_query ($conn , "set names utf8");
$sql = 'SELECT user_id, tajuk_pengguna,
pengarang_pengguna, tarikh_serahan
DARIPADA pengguna';
mysqli_select_db( $ conn, 'DEMO' );
$retval = mysqli_query( $conn, $sql );
if (! $retval )
{
die('Tidak dapat membaca data: ' . mysqli_error($conn ));
}
gema '<h2>Tapak web PHP Cina mysqli_fetch_assoc test<h2> ';
gema '<table border="1"><tr><td>ID Tutorial</td><td>Tajuk</td><td>Penulis</td>< ;td>Tarikh Penyerahan</td></tr>';
while($ row = mysqli_fetch_assoc($retval))
{
echo "<tr><td> {$row> ['user_id']}</td> ".
"<td>{ $row['user_title']} </td> ".
" "<td>{$row[ 'pengarang_pengguna']} </td> ".
" ['tarikh_serahan']} </td> ".
" </tr>";
}
gema '< ;/table>';
mysqli_close($conn);
?>
Anda juga boleh menggunakan pemalar MYSQLI_NUM sebagai parameter kedua fungsi PHP mysqli_fetch_array() untuk mengembalikan tatasusunan angka.
Contoh
Contoh berikut menggunakan parameter MYSQLI_NUM untuk memaparkan semua rekod pengguna jadual data:
< ?php
header("Content-Type: text/html;charset=utf-8");
$dbhost = 'localhost'; // alamat hos pelayan mysql
$dbuser = ' root'; / nama pengguna mysql
$dbpass = 'root'; // nama pengguna dan kata laluan mysql
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('Sambungan gagal: ' . mysqli_error($conn));
}
//Tetapkan pengekodan untuk mengelakkan aksara Cina yang kacau
mysqli_query($conn, "set names utf8" );
$sql = 'PILIH user_id, user_title,
user_author, submission_date
DARIPADA pengguna';
mysqli_select_db( $conn, 'demo' );
$ retval = mysqli_query ( $conn, $sql );
if(! $retval )
{
die('Tidak dapat membaca data: ' . mysqli_error($conn));
}
echo ' <h2>Ujian mysqli_fetch_array laman web PHP Cina<h2>';
echo '<table border="1"><tr><td>ID Tutorial</td><td><td> Tajuk< ;/td><td>Pengarang</td><td>Tarikh Hantar</td></tr>';
while($row = mysqli_fetch_array)( echo "<tr><td> {$row[0]}</td> ".
"<td>{$row[1]} </td> " .
“<td>{$row[2]} </td> “.
“<td>{$row[3]} </td> /tr>";
}
gema '</table>';
mysqli_close($conn);
?>
Hasil keluaran ketiga-tiga contoh di atas adalah sama.
Keluaran Memori
Selepas kami melaksanakan pernyataan SELECT, adalah satu tabiat yang baik untuk melepaskan memori kursor.
Memori boleh dikeluarkan melalui fungsi PHP mysqli_free_result().
Contoh berikut menunjukkan penggunaan fungsi ini.
Contoh
Cuba contoh berikut:
<?php
header("Content-Type: text/html;charset=utf-8");
$dbhost = 'localhost'; alamat hos pelayan mysql
$dbuser = 'root'; // nama pengguna mysql
$dbpass = 'root';
if(! $conn )
{
die( 'Sambungan gagal: ' . mysqli_error($conn));
}
//Tetapkan pengekodan untuk mengelakkan aksara Cina yang kacau
mysqli_query($conn, "set names utf8");
$sql = 'PILIH user_id, user_title,
user_author, submission_date
DARIPADA pengguna';
mysqli_select_db( $conn, 'demo' );
$retval = mysqli_query( $conn, $ sql );
if(! $retval )
{
die('Tidak dapat membaca data: ' .mysqli_error ($conn));
}
echo '<h2>PHP Ujian mysqli_fetch_array tapak web Cina<h2>';
gema '<table border="1"><tr>< ;td>ID Tutorial</td><td>Tajuk</td;> ;Pengarang</td><td>Tarikh Penyerahan</td></tr>';
manakala($row = mysqli_fetch_array($retval, MYSQLI_NUM))
{
echo tr><td> {$row[0]}</td> ".
" "< td>{$row[1]} </td> ".
" "< td>{$row[2]} </td> ".
" "<td>{$row[ 3]}</td> retval);
mysqli_close($conn);
?>
Cadangan kursus berkaitan: