In PHP ist die Abfrage eine sehr häufig verwendete Operation, um die erforderlichen Daten aus der Datenbank abzurufen oder zu überprüfen. Dies ist eine wichtige Grundlage, denn sie ermöglicht uns den Zugriff auf die Inhalte der Datenbank.
In diesem Artikel erfahren Sie, wie Sie Abfragen in PHP ausführen, um unsere Webanwendungen leistungsfähiger zu machen.
1. Verbindung zur Datenbank herstellen
Bevor wir mit der Abfrage beginnen, müssen wir eine Datenbankverbindung herstellen. Sie können PDO (PHP Data Objects) oder die MySQL-Erweiterung verwenden.
PDO verwenden:
$host = 'localhost'; $dbname = 'mydatabase'; $user = 'myusername'; $pass = 'mypassword'; try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); //设置错误模式为异常处理 $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully!"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); }
Mysqli verwenden:
$host = 'localhost'; $dbname = 'mydatabase'; $user = 'myusername'; $pass = 'mypassword'; // 创建连接 $conn = new mysqli($host, $user, $pass, $dbname); // 检测连接 if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } echo "Connected successfully!";
2. Abfrage ausführen
Sobald wir die Datenbankverbindung hergestellt haben, können wir die Abfrage ausführen. Hier ist ein Beispiel für die Durchführung einer SELECT-Abfrage mit PDO und mysqli:
Mit PDO:
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $sql = "SELECT * FROM mytable"; $stmt = $pdo->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); // 输出结果 print_r($result);
Mit mysqli:
$conn = new mysqli($host, $user, $pass, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM mytable"; $result = $conn->query($sql); 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"; } $conn->close();
3. Bindungsparameter
Beim Ausführen einer Abfrage möchten wir normalerweise, dass die Abfrage nur Ergebnisse zurückgibt die bestimmten Kriterien entsprechen. In diesem Fall müssen wir Bind-Parameter verwenden, um die Abfragebedingungen von der Abfrageanweisung zu trennen.
Hier ist ein Beispiel für die Bindung von Parametern mit PDO und MySQLi:
Mit PDO:
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $sql = "SELECT * FROM mytable WHERE name = :name"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':name', $name); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); // 输出结果 print_r($result);
Mit MySQLi:
$conn = new mysqli($host, $user, $pass, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $name = "John Doe"; $sql = "SELECT * FROM mytable WHERE name = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $name); $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"; } $conn->close();
4. Vorkompilierte Abfragen
Vorkompilierte Abfragen sind eine Möglichkeit, Datenbankabfragen zu optimieren, die es uns ermöglichen, Platzhalter in Abfragen zu verwenden um SQL-Injection-Angriffe zu vermeiden.
Hier ist ein Beispiel einer vorkompilierten Abfrage mit PDO und mysqli:
Mit PDO:
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $sql = "SELECT * FROM mytable WHERE name = ?"; $stmt = $pdo->prepare($sql); $stmt->execute([$name]); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); // 输出结果 print_r($result);
Mit mysqli:
$conn = new mysqli($host, $user, $pass, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $name = "John Doe"; $sql = "SELECT * FROM mytable WHERE name = ?"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $name); $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"; } $conn->close();
5. Ergebnismengenverarbeitung
Sobald wir die Abfrage ausgeführt haben, müssen wir die Ergebnismenge verarbeiten. Dies bedeutet, dass Sie sie in ein geeignetes Format für die Verwendung in Webanwendungen formatieren, z. B. Arrays oder JSON-Strings.
Hier ist ein Beispiel für die Verarbeitung einer Ergebnismenge:
PDO verwenden:
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass); $sql = "SELECT * FROM mytable"; $stmt = $pdo->prepare($sql); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_ASSOC); // 格式化为JSON字符串 echo json_encode($result);
Mysqli verwenden:
$conn = new mysqli($host, $user, $pass, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM mytable"; $result = $conn->query($sql); // 格式化为数组 $data = array(); if ($result->num_rows > 0) { while($row = $result->fetch_assoc()) { $data[] = $row; } } // 格式化为JSON字符串 echo json_encode($data); $conn->close();
Zusammenfassung
Das Ausführen von Abfragen in PHP ist eine wichtige Grundlage, die häufig in Webanwendungen verwendet wird. Wir können PDO oder die MySQLi-Erweiterung verwenden, um eine Datenbankverbindung herzustellen und die SELECT-Abfrage verwenden, um die benötigten Daten abzurufen. Wenn Abfragebedingungen gebundene Parameter erfordern, müssen wir gebundene Parameter und vorkompilierte Abfragen verwenden, um die Abfragesicherheit zu gewährleisten. Abschließend müssen wir die Ergebnismengen verarbeiten und in das entsprechende Webanwendungsdatenformat formatieren.
Das obige ist der detaillierte Inhalt vonSo führen Sie eine Abfrage in PHP aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!