PHP.mk документација

MySQL

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

set.mysqlinfo.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека set.mysqlinfo.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
MySQL

Референца за `set.mysqlinfo.php` со подобрена типографија и навигација.

set.mysqlinfo.php

MySQL драјвери и додатоци

PHP нуди неколку MySQL драјвери и додатоци за пристап и ракување со MySQL.

Разликите и функционалноста на MySQL екстензиите се опишани во прегледот на овој дел.

Наведените екстензии го поддржуваат MySQL протоколот. Примери за компатибилни бази на податоци се » MariaDB Server, » MySQL Server, » Percona Server for MySQLПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во » TiDB.

Белешки од корисници 1 белешка

sodapop at gmail dot com
1 месец пред
<?php
// =============================================================================
// 1. DATABASE CONFIGURATION & CONNECTION
// =============================================================================

$host = '127.0.0.1';
$db   = 'my_database';
$user = 'root';
$pass = 'password123';
$charset = 'utf8mb4';

$dsn = "mysql:host=$host;dbname=$db;charset=$charset";
$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION, // Throw exceptions on error
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,       // Fetch results as associative array
    PDO::ATTR_EMULATE_PREPARES   => false,                  // Use real prepared statements
];

try {
    $pdo = new PDO($dsn, $user, $pass, $options);
    echo "<h2>Database connection established successfully!</h2>";
} catch (\PDOException $e) {
    die("Database connection failed: " . $e->getMessage());
}

echo "<hr>";

// =============================================================================
// 2. CREATE (Insert a new user)
// =============================================================================

$firstName = 'John';
$lastName = 'Doe';
$email = '[email protected]';

// Prepare query to prevent SQL Injection
$sqlInsert = "INSERT INTO users (first_name, last_name, email) VALUES (:first_name, :last_name, :email)";
$stmtInsert = $pdo->prepare($sqlInsert);

// Execute with data
$stmtInsert->execute([
    'first_name' => $firstName,
    'last_name'  => $lastName,
    'email'      => $email
]);

// Get the ID of the newly inserted row
$newId = $pdo->lastInsertId();
echo "<strong>[CREATE]</strong> User successfully added with ID: " . $newId . "<br>";

// =============================================================================
// 3. UPDATE (Modify the newly created user)
// =============================================================================

$newEmail = '[email protected]';

$sqlUpdate = "UPDATE users SET email = :email WHERE id = :id";
$stmtUpdate = $pdo->prepare($sqlUpdate);
$stmtUpdate->execute([
    'email' => $newEmail,
    'id'    => $newId
]);

echo "<strong>[UPDATE]</strong> Email for user ID {$newId} has been updated.<br>";
echo "<hr>";

// =============================================================================
// 4. READ (Fetch all users into an HTML table)
// =============================================================================

// Use query() since no user input/variables are used in this SQL string
$stmtSelect = $pdo->query("SELECT id, first_name, last_name, email FROM users");
$users = $stmtSelect->fetchAll();

echo "<h3>[READ] List of users in the database:</h3>";

if (!empty($users)) {
    echo '<table border="1" cellpadding="5" style="border-collapse: collapse;">';
    echo '<tr><th>ID</th><th>First Name</th><th>Last Name</th><th>E-mail</th></tr>';
    
    foreach ($users as $row) {
        echo '<tr>';
        // htmlspecialchars() prevents XSS attacks
        echo '<td>' . htmlspecialchars($row['id']) . '</td>';
        echo '<td>' . htmlspecialchars($row['first_name']) . '</td>';
        echo '<td>' . htmlspecialchars($row['last_name']) . '</td>';
        echo '<td>' . htmlspecialchars($row['email']) . '</td>';
        echo '</tr>';
    }
    
    echo '</table>';
} else {
    echo "No users found in the database.<br>";
}

echo "<hr>";

// =============================================================================
// 5. DELETE (Remove the test user to keep the DB clean)
// =============================================================================

$sqlDelete = "DELETE FROM users WHERE id = ?";
$stmtDelete = $pdo->prepare($sqlDelete);
$stmtDelete->execute([$newId]);

echo "<strong>[DELETE]</strong> Test user with ID {$newId} has been deleted to keep the database clean.";
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.