Heim >Datenbank >MySQL-Tutorial >Wie konvertiert man eine MySQLi-Anweisung in PHP in PDO?

Wie konvertiert man eine MySQLi-Anweisung in PHP in PDO?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 03:34:02229Durchsuche

How to convert a MySQLi statement to PDO in PHP?

So führen Sie eine SQL-Konvertierung mit PDO durch

Einführung

PDO (PHP-Datenobjekte). ) bietet eine einheitliche API für die Interaktion mit Datenbanken in PHP. Es bietet eine strukturierte und konsistente Methode zum Schreiben und Ausführen von SQL-Abfragen. In diesem Artikel wird gezeigt, wie Sie die erste if-Anweisung im bereitgestellten PHP-Code von der Verwendung von mysqli in die Verwendung von PDO für den Datenbankzugriff konvertieren.

Aktualisieren des Codes

So verwenden Sie PDO in Definieren Sie in der if-Anweisung zunächst die Datenbankverbindungsparameter:

$db_host = "127.0.0.1";
$db_name = "name_of_database";
$db_user = "user_name";
$db_pass = "user_password";

// Create a connection to the MySQL database
$pdo = new PDO(
    "mysql:host={$db_host};dbname={$db_name}",
    $db_user,
    $db_pass,
    [
        PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_EMULATE_PREPARES => FALSE
    ]
);

Aktualisieren Sie als Nächstes die if-Anweisung, um PDO-vorbereitete Anweisungen zu verwenden:

if ($id) {
    $sql = "SELECT email FROM users WHERE u_id = ?";
    $query = $pdo->prepare($sql);    // Prepare the query 
    $query->execute([$id]);          // Bind the parameter and execute the query 
    $email = $query->fetchColumn();  // Return the value from the database
}

Die fetchColumn()-Methode ruft eine einzelne ab Spalte aus dem Ergebnissatz.

Zusätzliche Überlegungen

  • Fehlerbehandlung: Ausnahmen sollten bei der Arbeit mit PDO ordnungsgemäß behandelt werden.
  • Parameterbindung: Verwenden Sie vorbereitete Anweisungen, um SQL-Injection-Schwachstellen zu verhindern.
  • Null-Koaleszenzoperator: Verwenden Sie den Null-Koaleszenzoperator (??), um Hinweise zu verhindern oder Fehler, wenn Variablen nicht definiert sind.

Vollständiger aktualisierter Code

$id = $_SESSION['u_id'] ?? NULL;

if ($id) {
    $sql = "SELECT email FROM users WHERE u_id = ?";
    $query = $pdo->prepare($sql);
    $query->execute([$id]);
    $email = $query->fetchColumn();
}

$email = $email ?? "";
$suggestions = selectAll($table);

$optionOne = $_POST['optionOne'] ?? "";
$optionTwo = $_POST['optionTwo'] ?? "";
$newSuggestion = $_POST['new-suggestion'] ?? "";

if ($newSuggestion && $id && $email && $optionOne && $optionTwo) {
    $sql = "INSERT INTO suggestions (user_id, email, option_1, option_2) VALUES (?, ?, ?, ?)";
    $query = $pdo->prepare($sql);
    $query->execute([$id, $email, $optionOne, $optionTwo]);
} else {
    echo "All options must be entered";
}

Durch die Konvertierung des Codes zur Verwendung von PDO erhöhen Sie seine Sicherheit und verbessern seine Portabilität über verschiedene Datenbanksysteme hinweg.

Das obige ist der detaillierte Inhalt vonWie konvertiert man eine MySQLi-Anweisung in PHP in PDO?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn