Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP melaksanakan pernyataan pertanyaan pangkalan data

PHP melaksanakan pernyataan pertanyaan pangkalan data

WBOY
WBOYasal
2023-05-06 18:08:08795semak imbas

PHP ialah bahasa pengaturcaraan sebelah pelayan yang sangat popular dengan API operasi pangkalan data terbina dalam yang kaya. Bagi pembangun, dapat menggunakan PHP dengan mahir untuk mengendalikan pangkalan data adalah kemahiran yang sangat penting. Dalam artikel ini, kami akan memberi tumpuan kepada cara melaksanakan pernyataan pertanyaan pangkalan data dalam PHP.

1. Sambung ke pangkalan data

Menyambung ke pangkalan data dalam PHP biasanya menggunakan mysqli atau PDO. Berikut ialah contoh kod untuk menggunakan mysqli untuk menyambung ke pangkalan data MySQL:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检查连接是否成功
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

2. Jalankan pernyataan pertanyaan

Selepas berjaya menyambung ke pangkalan data, kita boleh mula melaksanakan pernyataan pertanyaan SQL . Berikut ialah contoh kod untuk melaksanakan pernyataan pertanyaan menggunakan mysqli:

<?php
$sql = "SELECT id, name, email 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"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

mysqli_close($conn);
?>

Dalam kod di atas, kami menggunakan pernyataan SELECT untuk membaca data daripada pangkalan data dan menyimpan data dalam tatasusunan bersekutu melalui mysqli_fetch_assoc() fungsi. Akhir sekali, hasil pertanyaan adalah output melalui while loop traversal.

3. Cegah serangan suntikan SQL

Apabila melaksanakan pernyataan pertanyaan pangkalan data, perhatian khusus perlu diberikan kepada serangan suntikan SQL. Jika tiada langkah perlindungan diambil, pengguna yang berniat jahat boleh melakukan operasi yang menyalahi undang-undang dengan menyambungkan pernyataan SQL yang berniat jahat, seperti mengusik, memadamkan data, dsb. Oleh itu, dalam pembangunan sebenar, kenyataan yang disediakan mesti digunakan untuk menyusun semula pernyataan SQL untuk mengelakkan serangan suntikan SQL. Berikut ialah contoh kod yang menggunakan penyata yang disediakan mysqli untuk melaksanakan penyataan pertanyaan:

<?php
$stmt = $conn->prepare("SELECT id, name, email FROM users WHERE email= ? ");
$email = "john@example.com";
$stmt->bind_param("s", $email);
$stmt->execute();

$result = $stmt->get_result();
if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$stmt->close();
$conn->close();
?>

Dalam kod di atas, kami mula-mula menggunakan fungsi prepare() untuk menyusun semula pernyataan SQL dan menggabungkan syarat pertanyaan dengan SQL melalui kaedah bind_param() Penyata mengikat. Akhir sekali, dapatkan hasil pertanyaan melalui fungsi get_result() dan dapatkan data menggunakan kaedah fetch_assoc().

Ringkasan

Dalam artikel ini, kami memperkenalkan cara menggunakan mysqli dan PDO untuk menyambung ke pangkalan data dalam PHP dan melaksanakan pernyataan pertanyaan untuk mengelakkan serangan suntikan SQL. Dengan mempelajari dan menguasai kemahiran ini, anda akan dapat mengendalikan pangkalan data dengan lebih mahir dalam pembangunan PHP dan meningkatkan kecekapan dan keselamatan pembangunan.

Atas ialah kandungan terperinci PHP melaksanakan pernyataan pertanyaan pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn