Rumah >pembangunan bahagian belakang >masalah PHP >Penjelasan terperinci tentang cara PHP mengendalikan pangkalan data MySQL
Menyoal dua jadual data MySQL dan mengiranya dalam PHP adalah keperluan biasa. Artikel ini akan memperkenalkan cara menggunakan PHP untuk menyambung ke MySQL, jadual data pertanyaan, pertanyaan merentas jadual dan mengira data.
Menyambung ke MySQL dalam PHP memerlukan penggunaan sambungan mysqli atau PDO. Di sini kita menggunakan sambungan mysqli Kod sampel adalah seperti berikut:
<?php $host = "localhost"; $username = "root"; $password = ""; $dbname = "test"; $conn = mysqli_connect($host, $username, $password, $dbname); if(!$conn){ die("Connection failed: " . mysqli_connect_error()); }
Anda perlu menggunakan pernyataan SELECT untuk menanyakan data. meja. Mula-mula, kita perlu memilih lajur dan jadual data untuk ditanya:
$sql = "SELECT id, name, age FROM users"; $result = mysqli_query($conn, $sql); if(mysqli_num_rows($result) > 0){ while($row = mysqli_fetch_assoc($result)){ echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Age: " . $row["age"]. "<br>"; } }else{ echo "0 results"; }
Dalam contoh ini, kami menanyakan lajur id, nama dan umur dalam jadual data pengguna dan mengeluarkan nilai lajur ini .
Pertanyaan merentas jadual memerlukan penggunaan pernyataan JOIN. Katakan kita mempunyai dua pengguna jadual data dan pesanan, dan kini kita perlu menanyakan kuantiti pesanan pengguna.
Pertama, kita perlu menggunakan kata kunci LEFT JOIN untuk menggabungkan dua jadual data bersama-sama:
$sql = "SELECT users.id, users.name, count(orders.id) as orders_count FROM users LEFT JOIN orders ON users.id = orders.user_id GROUP BY users.id, users.name"; $result = mysqli_query($conn, $sql);
Dalam contoh ini, kami menggunakan kata kunci LEFT JOIN untuk menyertai data pengguna dan pesanan Jadual dicantumkan bersama dan lajur user_id digunakan dalam klausa ON untuk menyertai dua jadual data.
Kami kemudian menggunakan klausa GROUP BY untuk mengumpulkan mengikut ID dan nama pengguna, dan menggunakan fungsi COUNT untuk mengira kuantiti pesanan pengguna.
Fungsi SQL diperlukan untuk mengira data. Di sini, kami memperkenalkan beberapa fungsi SQL yang biasa digunakan.
Fungsi SUM boleh mengira jumlah lajur yang ditentukan:
SELECT SUM(price) FROM orders;
Fungsi AVG boleh mengira purata lajur yang ditentukan:
SELECT AVG(price) FROM orders;
KIRA fungsi boleh mengira purata lajur yang ditentukan Bilangan baris:
SELECT COUNT(*) FROM orders;
Fungsi MAX boleh memilih nilai maksimum lajur yang ditentukan:
SELECT MAX(price) FROM orders;
Fungsi MIN boleh memilih nilai minimum lajur yang ditentukan:
SELECT MIN(price) FROM orders;
Sekarang, mari kita susun perkara di atas untuk membina contoh lengkap:
<?php $host = "localhost"; $username = "root"; $password = ""; $dbname = "test"; $conn = mysqli_connect($host, $username, $password, $dbname); if(!$conn){ die("Connection failed: " . mysqli_connect_error()); } $sql = "SELECT users.id, users.name, count(orders.id) as orders_count FROM users LEFT JOIN orders ON users.id = orders.user_id GROUP BY users.id, users.name"; $result = mysqli_query($conn, $sql); if(mysqli_num_rows($result) > 0){ while($row = mysqli_fetch_assoc($result)){ echo "ID: " . $row["id"]. " - Name: " . $row["name"]. " - Orders count: " . $row["orders_count"]. "
"; } }else{ echo "0 results"; } mysqli_close($conn); ?>
Dalam contoh lengkap ini, kami mula-mula menyambung MySQL kemudian menggunakan kata kunci LEFT JOIN untuk menanyakan pengguna dan memesan jadual data, dan mengira kuantiti pesanan untuk setiap pengguna.
Akhir sekali, kami menutup sambungan MySQL menggunakan fungsi mysqli_close.
Ringkasan
Untuk menanyakan dua jadual data MySQL dan mengiranya dalam PHP, anda perlu menggunakan sambungan mysqli atau PDO untuk menyambung ke MySQL, gunakan pernyataan SELECT dan JOIN untuk menanyakan jadual data, gunakan SUM, AVG, COUNT, MAX dan MIN fungsi mengira data.
Perlu diingatkan bahawa sebelum menulis pernyataan pertanyaan, kita perlu memahami dengan jelas hubungan antara lajur yang ingin ditanya dan jadual data, dan seboleh-bolehnya elakkan menggunakan pernyataan pertanyaan kompleks. Pada masa yang sama, kita perlu menggunakan fungsi mysqli_real_escape_string untuk menapis input pengguna untuk mengelakkan serangan suntikan SQL.
Atas ialah kandungan terperinci Penjelasan terperinci tentang cara PHP mengendalikan pangkalan data MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!