Heim >Backend-Entwicklung >PHP-Problem >PHP führt Datenbankabfrageanweisungen aus

PHP führt Datenbankabfrageanweisungen aus

WBOY
WBOYOriginal
2023-05-06 18:08:08819Durchsuche

PHP ist eine sehr beliebte serverseitige Programmiersprache mit einer umfangreichen integrierten Datenbankoperations-API. Für Entwickler ist der gekonnte Umgang mit PHP zum Betrieb von Datenbanken eine sehr wichtige Fähigkeit. In diesem Artikel konzentrieren wir uns auf die Ausführung von Datenbankabfrageanweisungen in PHP.

1. Verbindung zur Datenbank herstellen

Die Verbindung zur Datenbank in PHP erfolgt normalerweise über MySQL oder PDO. Das Folgende ist ein Beispielcode für die Verwendung von mysqli zum Herstellen einer Verbindung zu einer MySQL-Datenbank:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// 创建连接
$conn = mysqli_connect($servername, $username, $password, $dbname);

// 检查连接是否成功
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

2. Führen Sie die Abfrageanweisung aus.

Nachdem wir erfolgreich eine Verbindung zur Datenbank hergestellt haben, können wir mit der Ausführung der SQL-Abfrageanweisung beginnen. Das Folgende ist ein Beispielcode zum Ausführen einer Abfrageanweisung mit mysqli:

<?php
$sql = "SELECT id, name, email FROM users";
$result = mysqli_query($conn, $sql);

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

mysqli_close($conn);
?>

Im obigen Code verwenden wir die SELECT-Anweisung, um Daten aus der Datenbank zu lesen und die Daten über die Funktion mysqli_fetch_assoc() in einem assoziativen Array zu speichern. Schließlich werden die Abfrageergebnisse durch While-Schleifendurchlauf ausgegeben.

3. SQL-Injection-Angriffe verhindern

Bei der Ausführung von Datenbankabfrageanweisungen muss besonderes Augenmerk auf SQL-Injection-Angriffe gelegt werden. Wenn keine Schutzmaßnahmen ergriffen werden, können böswillige Benutzer illegale Vorgänge ausführen, indem sie bösartige SQL-Anweisungen zusammenfügen, z. B. Manipulationen, Datenlöschungen usw. Daher müssen in der tatsächlichen Entwicklung vorbereitete Anweisungen zum Vorkompilieren von SQL-Anweisungen verwendet werden, um SQL-Injection-Angriffe zu vermeiden. Das Folgende ist ein Beispielcode, der mysqli-vorbereitete Anweisungen verwendet, um Abfrageanweisungen auszuführen:

<?php
$stmt = $conn->prepare("SELECT id, name, email FROM users WHERE email= ? ");
$email = "john@example.com";
$stmt->bind_param("s", $email);
$stmt->execute();

$result = $stmt->get_result();
if ($result->num_rows > 0) {
    // 输出数据
    while($row = $result->fetch_assoc()) {
        echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";
    }
} else {
    echo "0 results";
}

$stmt->close();
$conn->close();
?>

Im obigen Code verwenden wir zunächst die Funktion Prepare(), um die SQL-Anweisung vorzukompilieren, und binden die Abfragebedingungen über bind_param an die SQL-Anweisung ()-Methode. Rufen Sie abschließend die Abfrageergebnisse mit der Funktion get_result() ab und rufen Sie die Daten mit der Methode fetch_assoc() ab.

Zusammenfassung

In diesem Artikel haben wir vorgestellt, wie man mit mysqli und PDO eine Verbindung zur Datenbank in PHP herstellt und Abfrageanweisungen ausführt, um SQL-Injection-Angriffe zu verhindern. Durch das Erlernen und Beherrschen dieser Fähigkeiten können Sie die Datenbank in der PHP-Entwicklung geschickter bedienen und die Entwicklungseffizienz und -sicherheit verbessern.

Das obige ist der detaillierte Inhalt vonPHP führt Datenbankabfrageanweisungen aus. 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