Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk melaksanakan pertanyaan dalam php

Bagaimana untuk melaksanakan pertanyaan dalam php

WBOY
Lepaskan: 2023-05-06 15:07:07
asal
683 orang telah melayarinya

Dalam PHP, pertanyaan ialah operasi yang sangat kerap digunakan untuk mendapatkan atau menyemak data yang diperlukan daripada pangkalan data. Ini adalah asas yang penting kerana ia memberikan kita akses kepada kandungan dalam pangkalan data.

Dalam artikel ini, kami akan meneroka cara melaksanakan pertanyaan dalam PHP untuk menjadikan aplikasi web kami lebih berkuasa.

1. Sambung ke pangkalan data

Sebelum memulakan pertanyaan, kami perlu mewujudkan sambungan pangkalan data. Anda boleh menggunakan PDO (Objek Data PHP) atau sambungan mysqli.

Menggunakan PDO:

$host = 'localhost';
$dbname = 'mydatabase';
$user = 'myusername';
$pass = 'mypassword';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
    //设置错误模式为异常处理
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Connected successfully!";
} catch(PDOException $e) {
    echo "Connection failed: " . $e->getMessage();
}
Salin selepas log masuk

Menggunakan mysqli:

$host = 'localhost';
$dbname = 'mydatabase';
$user = 'myusername';
$pass = 'mypassword';

// 创建连接
$conn = new mysqli($host, $user, $pass, $dbname);

// 检测连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully!";
Salin selepas log masuk

2. Melaksanakan pertanyaan

Setelah kami mewujudkan sambungan pangkalan data, kami boleh melaksanakan pertanyaan . Berikut ialah contoh cara melakukan pertanyaan SELECT menggunakan PDO dan mysqli:

Menggunakan PDO:

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);
Salin selepas log masuk

Menggunakan mysqli:

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM mytable";
$result = $conn->query($sql);

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";
}

$conn->close();
Salin selepas log masuk

3. Ikat parameter

Apabila melaksanakan pertanyaan, kami biasanya mahu pertanyaan itu hanya mengembalikan hasil yang sepadan dengan kriteria tertentu. Dalam kes ini, kita perlu menggunakan parameter bind untuk memisahkan keadaan pertanyaan daripada pernyataan pertanyaan.

Berikut ialah contoh parameter pengikatan menggunakan PDO dan mysqli:

Menggunakan PDO:

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable WHERE name = :name";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':name', $name);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);
Salin selepas log masuk

Menggunakan mysqli:

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$name = "John Doe";

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $name);
$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";
}

$conn->close();
Salin selepas log masuk
Salin selepas log masuk

4. Pertanyaan tersusun

Pertanyaan prapengumpulan ialah cara mengoptimumkan pertanyaan pangkalan data, yang membolehkan kami menggunakan ruang letak dalam pertanyaan untuk mengelakkan serangan suntikan SQL.

Berikut ialah contoh menggunakan pertanyaan PDO dan mysqli yang telah disusun sebelumnya:

Menggunakan PDO:

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$name]);
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 输出结果
print_r($result);
Salin selepas log masuk

Menggunakan mysqli:

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$name = "John Doe";

$sql = "SELECT * FROM mytable WHERE name = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $name);
$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";
}

$conn->close();
Salin selepas log masuk
Salin selepas log masuk

5. Pemprosesan set hasil

Setelah kami melaksanakan pertanyaan, kami perlu memproses set hasil, yang bermaksud memformatkannya ke dalam format yang sesuai untuk digunakan dalam aplikasi web, seperti tatasusunan atau rentetan JSON.

Berikut ialah contoh pengendalian set hasil:

Menggunakan PDO:

$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$sql = "SELECT * FROM mytable";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

// 格式化为JSON字符串
echo json_encode($result);
Salin selepas log masuk

Menggunakan mysqli:

$conn = new mysqli($host, $user, $pass, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT * FROM mytable";
$result = $conn->query($sql);

// 格式化为数组
$data = array();
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        $data[] = $row;
    }
}

// 格式化为JSON字符串
echo json_encode($data);

$conn->close();
Salin selepas log masuk

Ringkasan

Dalam PHP Melaksanakan pertanyaan adalah asas penting dan kerap digunakan dalam aplikasi web. Kami boleh menggunakan sambungan PDO atau mysqli untuk mewujudkan sambungan pangkalan data dan menggunakan pertanyaan SELECT untuk mendapatkan semula data yang kami perlukan. Apabila keadaan pertanyaan memerlukan parameter terikat, kita perlu menggunakan parameter terikat dan pertanyaan yang diprasusun untuk memastikan keselamatan pertanyaan. Akhir sekali, kita perlu memproses set keputusan dan memformatkannya ke dalam format data aplikasi web yang sesuai.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pertanyaan dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan