Rumah >pembangunan bahagian belakang >tutorial php >Petua menggunakan fungsi operasi pangkalan data PHP

Petua menggunakan fungsi operasi pangkalan data PHP

WBOY
WBOYasal
2023-06-16 10:52:531058semak imbas

PHP ialah bahasa skrip sebelah pelayan yang popular yang boleh digunakan untuk membina pelbagai jenis aplikasi web, termasuk tapak web dinamik, aplikasi web dan tapak e-dagang. Pangkalan data adalah teras kepada mana-mana aplikasi web yang bercita-cita tinggi, digunakan untuk menyimpan dan mengurus data yang diperlukan oleh aplikasi.

PHP mempunyai banyak fungsi dan sambungan untuk berinteraksi dengan pangkalan data. Dalam artikel ini, kami akan memperkenalkan beberapa petua tentang menggunakan fungsi operasi pangkalan data PHP untuk membantu anda menggunakan fungsi ini dengan lebih baik untuk berinteraksi dengan pangkalan data.

  1. Sambung ke pangkalan data

Fungsi yang paling biasa digunakan untuk menyambung ke pangkalan data menggunakan PHP ialah mysqli_connect(). Prototaip fungsi ini ialah:

mysqli mysqli_connect ( string $host , string $username , string $passwd , string $dbname [, int $port = 3306 [, string $socket = '' ]] )

Antaranya, $host mewakili nama hos atau alamat IP pangkalan data, $username dan $passwd ialah nama pengguna dan kata laluan pangkalan data, $dbname ialah nama pangkalan data untuk disambungkan, dan $port ialah nombor port , $socket ialah fail soket.

Sambung ke contoh pangkalan data:

// 连接数据库
$mysqli = mysqli_connect("localhost", "root", "password", "mydatabase");

// 检查连接是否成功
if (!$mysqli) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
  1. Laksanakan pernyataan SQL

Setelah berjaya disambungkan ke pangkalan data, anda boleh melaksanakan pelbagai pernyataan SQL. Terdapat dua cara asas untuk melaksanakan pernyataan SQL menggunakan PHP: mysqli_query() dan mysqli_prepare().

2.1 mysqli_query()

Prototaip fungsi mysqli_query() adalah seperti berikut:

mixed mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )

Antaranya, $link mewakili objek mysqli yang disambungkan ke pangkalan data, dan $query ialah pernyataan SQL yang akan dilaksanakan , $resultmode menentukan jenis set hasil.

Contoh melaksanakan penyataan pertanyaan SQL:

$sql = "SELECT id, name FROM users";
$result = mysqli_query($mysqli, $sql);

if (mysqli_num_rows($result) > 0) {
    while($row = mysqli_fetch_assoc($result)) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
    }
} else {
    echo "0 results";
}

Contoh melaksanakan penyata sisipan, kemas kini dan padam SQL:

// 插入数据
$sql = "INSERT INTO users (name, age) VALUES ('John', 25)";
if (mysqli_query($mysqli, $sql)) {
    echo "New record created successfully";
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($mysqli);
}

// 更新数据
$sql = "UPDATE users SET age=30 WHERE name='John'";
if (mysqli_query($mysqli, $sql)) {
    echo "Record updated successfully";
} else {
    echo "Error updating record: " . mysqli_error($mysqli);
}

// 删除数据
$sql = "DELETE FROM users WHERE id=3";
if (mysqli_query($mysqli, $sql)) {
    echo "Record deleted successfully";
} else {
    echo "Error deleting record: " . mysqli_error($mysqli);
}

2.2 mysqli_prepare()

paremy) ) fungsi Digunakan untuk menyediakan pernyataan pertanyaan SQL, tetapi tidak melaksanakannya secara langsung. Ini boleh membantu mencegah serangan suntikan SQL. Anda perlu mengikat parameter melalui fungsi mysqli_stmt_bind_param() dan laksanakan pertanyaan menggunakan fungsi mysqli_stmt_execute().

Prototaip fungsi mysqli_prepare() adalah seperti berikut:

mysqli_stmt mysqli_prepare ( mysqli $link , string $query )

Antaranya, $link mewakili objek mysqli yang disambungkan ke pangkalan data, dan $query ialah pernyataan pertanyaan SQL yang akan dilaksanakan.

Contoh melaksanakan pernyataan pertanyaan SQL:

$sql = "SELECT id, name, age FROM users WHERE age > ?";
$stmt = mysqli_prepare($mysqli, $sql);

if ($stmt) {
    mysqli_stmt_bind_param($stmt, "i", $age);
    $age = 20;
    mysqli_stmt_execute($stmt);
    mysqli_stmt_bind_result($stmt, $id, $name, $age);

    while (mysqli_stmt_fetch($stmt)) {
        echo "id: " . $id . ", name: " . $name . ", age: " . $age;
    }

    mysqli_stmt_close($stmt);
} else {
    echo "Error in preparing statement: " . mysqli_error($mysqli);
}

    Transaksi pangkalan data
Apabila memproses operasi pangkalan data, anda mungkin perlu melaksanakan berbilang pernyataan SQL dalam satu transaksi . Pada masa ini, transaksi pangkalan data akan sangat berguna.

Menggunakan PHP untuk melaksanakan transaksi pangkalan data memerlukan penggunaan fungsi berikut:

    mysqli_autocommit(): Tetapkan sama ada untuk melakukan transaksi secara automatik.
  • mysqli_commit(): Lakukan transaksi.
  • mysqli_rollback(): transaksi rollback.
Contoh:

// 关闭自动提交事务
mysqli_autocommit($mysqli, FALSE);

// 执行多个SQL语句
mysqli_query($mysqli, "INSERT INTO users (name, age) VALUES ('John', 25)");
mysqli_query($mysqli, "UPDATE users SET age=30 WHERE name='John'");

// 如果所有SQL语句都成功执行,则提交事务
mysqli_commit($mysqli);
echo "Transaction committed successfully";

// 如果任何一个SQL语句执行失败,则回滚事务
mysqli_rollback($mysqli);
echo "Transaction rolled back because of failure";

    Tutup sambungan pangkalan data
Selepas menyelesaikan operasi pangkalan data, pastikan untuk menutup sambungan pangkalan data untuk melepaskan sumber .

Gunakan fungsi mysqli_close() untuk menutup sambungan pangkalan data.

// 关闭数据库连接
mysqli_close($mysqli);
echo "Connection closed";

Ringkasan

Artikel ini memperkenalkan teknik menyambung ke pangkalan data, melaksanakan pernyataan SQL, transaksi dan menutup sambungan pangkalan data dalam PHP. PHP menyediakan pelbagai fungsi dan sambungan untuk berinteraksi dengan pangkalan data Dengan mahir dalam penggunaan fungsi ini dapat memudahkan kerja menulis aplikasi Web. Pada masa yang sama, berhati-hati untuk mengikuti amalan keselamatan terbaik dalam operasi pangkalan data untuk mengurangkan risiko suntikan SQL dan kelemahan keselamatan yang lain.

Atas ialah kandungan terperinci Petua menggunakan fungsi operasi pangkalan data PHP. 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