10 мощных методов вставки данных в MySQL с помощью PHP

Привет! В этой статье блога мы рассмотрим различные методы вставки данных в базу данных MySQL с помощью PHP. Я объясню каждый метод простыми словами и предоставлю вам практические примеры кода. Итак, начнем!

Метод 1: использование функции mysqli_query()

<?php
$conn = mysqli_connect("localhost", "username", "password", "database");
$name = "John";
$email = "john@example.com";
$query = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
$result = mysqli_query($conn, $query);
if ($result) {
    echo "Data inserted successfully using mysqli_query()!";
} else {
    echo "Error: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

Метод 2. Использование подготовленных операторов

<?php
$conn = mysqli_connect("localhost", "username", "password", "database");
$name = "John";
$email = "john@example.com";
$query = "INSERT INTO users (name, email) VALUES (?, ?)";
$stmt = mysqli_prepare($conn, $query);
mysqli_stmt_bind_param($stmt, "ss", $name, $email);
$result = mysqli_stmt_execute($stmt);
if ($result) {
    echo "Data inserted successfully using prepared statements!";
} else {
    echo "Error: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

Метод 3: использование PDO (объекты данных PHP)

<?php
$dsn = "mysql:host=localhost;dbname=database";
$username = "username";
$password = "password";
$name = "John";
$email = "john@example.com";
try {
    $conn = new PDO($dsn, $username, $password);
    $query = "INSERT INTO users (name, email) VALUES (:name, :email)";
    $stmt = $conn->prepare($query);
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':email', $email);
    $result = $stmt->execute();
    if ($result) {
        echo "Data inserted successfully using PDO!";
    } else {
        echo "Error: " . $stmt->errorInfo()[2];
    }

    $conn = null;
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>

Метод 4. Использование объектно-ориентированного подхода (mysqli)

<?php
$conn = new mysqli("localhost", "username", "password", "database");
$name = "John";
$email = "john@example.com";
$query = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
$result = $conn->query($query);
if ($result) {
    echo "Data inserted successfully using object-oriented approach (mysqli)!";
} else {
    echo "Error: " . $conn->error;
}
$conn->close();
?>

Метод 5. Использование объектно-ориентированного подхода (PDO)

<?php
$dsn = "mysql:host=localhost;dbname=database";
$username = "username";
$password = "password";
$name = "John";
$email = "john@example.com";
try {
    $conn = new PDO($dsn, $username, $password);
    $query = "INSERT INTO users (name, email) VALUES (:name, :email)";
    $stmt = $conn->prepare($query);
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':email', $email);
    $result = $stmt->execute();
    if ($result) {
        echo "Data inserted successfully using object-oriented approach (PDO)!";
    } else {
        echo "Error: " . $stmt->errorInfo()[2];
    }

    $conn = null;
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>

Метод 6. Использование процедурного подхода MySQLi

<?php
$conn = mysqli_connect("localhost", "username", "password", "database");
$name = "John";
$email = "john@example.com";
$query = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
$result = mysqli_query($conn, $query);
if ($result) {
    echo "Data inserted successfully using MySQLi procedural approach!";
} else {
    echo "Error: " . mysqli_error($conn);
}
mysqli_close($conn);
?>

Метод 7. Использование объектно-ориентированного подхода MySQLi

<?php
$conn = new mysqli("localhost", "username", "password", "database");
$name = "John";
$email = "john@example.com";
$query = "INSERT INTO users (name, email) VALUES ('$name', '$emailMethod 7: Using the MySQLi object-oriented approach
```php
<?php
$conn = new mysqli("localhost", "username", "password", "database");

$name = "John";
$email = "john@example.com";

$query = "INSERT INTO users (name, email) VALUES ('$name', '$email')";
$result = $conn->query($query);

if ($result) {
    echo "Data inserted successfully using MySQLi object-oriented approach!";
} else {
    echo "Error: " . $conn->error;
}

$conn->close();
?>

Метод 8. Использование транзакции PDO

<?php
$dsn = "mysql:host=localhost;dbname=database";
$username = "username";
$password = "password";

$name = "John";
$email = "john@example.com";

try {
    $conn = new PDO($dsn, $username, $password);
    $conn->beginTransaction();

    $query = "INSERT INTO users (name, email) VALUES (:name, :email)";
    $stmt = $conn->prepare($query);
    $stmt->bindParam(':name', $name);
    $stmt->bindParam(':email', $email);
    $result = $stmt->execute();

    if ($result) {
        $conn->commit();
        echo "Data inserted successfully using PDO transaction!";
    } else {
        $conn->rollBack();
        echo "Error: " . $stmt->errorInfo()[2];
    }

    $conn = null;
} catch (PDOException $e) {
    echo "Error: " . $e->getMessage();
}
?>

Метод 9. Использование библиотеки ORM (объектно-реляционного сопоставления), например Doctrine

<?php
require_once "vendor/autoload.php";

use Doctrine\DBAL\Configuration;
use Doctrine\DBAL\DriverManager;

$config = new Configuration();
$connectionParams = array(
    'dbname' => 'database',
    'user' => 'username',
    'password' => 'password',
    'host' => 'localhost',
    'driver' => 'pdo_mysql',
);

$name = "John";
$email = "john@example.com";

try {
    $conn = DriverManager::getConnection($connectionParams, $config);

    $data = [
        'name' => $name,
        'email' => $email,
    ];
    $result = $conn->insert('users', $data);

    if ($result) {
        echo "Data inserted successfully using Doctrine ORM!";
    } else {
        echo "Error: Failed to insert data using Doctrine ORM!";
    }
} catch (Exception $e) {
    echo "Error: " . $e->getMessage();
}
?>

Метод 10. Использование построителя запросов, например Eloquent ORM от Laravel

<?php
require_once "vendor/autoload.php";

use Illuminate\Database\Capsule\Manager as Capsule;

$capsule = new Capsule;
$capsule->addConnection([
    'driver' => 'mysql',
    'host' => 'localhost',
    'database' => 'database',
    'username' => 'username',
    'password' => 'password',
]);

$capsule->setAsGlobal();
$capsule->bootEloquent();

$name = "John";
$email = "john@example.com";

$user = new User;
$user->name = $name;
$user->email = $email;
$result = $user->save();

if ($result) {
    echo "Data inserted successfully using Laravel's Eloquent ORM!";
} else {
    echo "Error: Failed to insert data using Laravel's Eloquent ORM!";
}
?>

И вот оно! Это десять мощных методов вставки данных в базу данных MySQL с использованием PHP. Смело выбирайте тот метод, который лучше всего соответствует вашим потребностям. Приятного кодирования!