Heim > Datenbank > MySQL-Tutorial > Hauptteil

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

Mary-Kate Olsen
Freigeben: 2024-11-06 03:34:02
Original
144 Leute haben es durchsucht

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
    ]
);
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!